Skip to content

Commit 3f38256

Browse files
committed
Merge remote-tracking branch 'origin/develop' into support_27
# Conflicts: # build.gradle # src/main/java/org/springframework/data/jpa/repository/query/DynamicJpaParameterAccessor.java
2 parents b2663e2 + 95b18e4 commit 3f38256

File tree

2 files changed

+26
-15
lines changed

2 files changed

+26
-15
lines changed

build.gradle

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ plugins {
1010
}
1111

1212
group = 'com.github.joutvhu'
13-
version = '2.7.6'
13+
version = '2.7.7'
1414
sourceCompatibility = 1.8
1515
targetCompatibility = 1.8
1616

@@ -32,8 +32,7 @@ ext {
3232
'spring-boot.version' : '2.7.0',
3333
'spring-framework.version' : '5.3.20',
3434
'spring-dynamic-commons.version': '2.0.0',
35-
'hibernate.version' : '5.6.9.Final',
36-
'commons-lang3.version' : '3.12.0'
35+
'hibernate.version' : '5.6.9.Final'
3736
]
3837
managedVersions = [
3938
'org.springframework:spring-aspects' : 'spring-framework.version',
@@ -43,8 +42,7 @@ ext {
4342
'org.springframework.data:spring-data-commons': 'spring-boot.version',
4443
'org.springframework.data:spring-data-jpa' : 'spring-boot.version',
4544
'com.github.joutvhu:spring-dynamic-commons' : 'spring-dynamic-commons.version',
46-
'org.hibernate:hibernate-core' : 'hibernate.version',
47-
'org.apache.commons:commons-lang3' : 'commons-lang3.version'
45+
'org.hibernate:hibernate-core' : 'hibernate.version'
4846
]
4947
otherVersions = [
5048
'org.springframework.boot:spring-boot-dependencies': 'spring-boot.version'
@@ -71,8 +69,8 @@ dependencies {
7169

7270
implementation 'org.hibernate:hibernate-core'
7371

74-
compileOnly 'org.projectlombok:lombok:1.18.24'
75-
annotationProcessor 'org.projectlombok:lombok:1.18.24'
72+
compileOnly 'org.projectlombok:lombok:1.18.26'
73+
annotationProcessor 'org.projectlombok:lombok:1.18.26'
7674

7775
testImplementation(platform('org.junit:junit-bom:5.8.2'))
7876
testImplementation 'org.junit.jupiter:junit-jupiter-api'
@@ -88,8 +86,8 @@ dependencies {
8886
testImplementation 'com.h2database:h2'
8987
testImplementation 'com.github.joutvhu:spring-dynamic-freemarker:1.0.0'
9088

91-
testCompileOnly 'org.projectlombok:lombok:1.18.24'
92-
testAnnotationProcessor 'org.projectlombok:lombok:1.18.24'
89+
testCompileOnly 'org.projectlombok:lombok:1.18.26'
90+
testAnnotationProcessor 'org.projectlombok:lombok:1.18.26'
9391
}
9492

9593
jar {

src/main/java/org/springframework/data/jpa/repository/query/DynamicJpaParameterAccessor.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.springframework.data.jpa.repository.query;
22

3-
import org.hibernate.jpa.TypedParameterValue;
43
import org.springframework.data.repository.query.Parameters;
54

5+
import java.lang.reflect.Method;
66
import java.util.HashMap;
77
import java.util.Map;
88

@@ -72,13 +72,26 @@ private Map<String, Object> getParamModel(JpaParametersParameterAccessor accesso
7272
Object value = accessor.getValue(parameter);
7373
if (value != null && parameter.isBindable()) {
7474
String key = parameter.getName().orElse(String.valueOf(parameter.getIndex()));
75-
if (value instanceof TypedParameterValue) {
76-
result.put(key, ((TypedParameterValue) value).getValue());
77-
} else {
78-
result.put(key, value);
79-
}
75+
result.put(key, getParameterValue(value));
8076
}
8177
});
8278
return result;
8379
}
80+
81+
@SuppressWarnings("java:S1872")
82+
private Object getParameterValue(Object value) {
83+
Class<?> valueClass = value.getClass();
84+
String className = valueClass.getName();
85+
if ("org.hibernate.query.TypedParameterValue".equals(className) ||
86+
"org.hibernate.jpa.TypedParameterValue".equals(className)) {
87+
try {
88+
Method getValue = valueClass.getMethod("getValue");
89+
return getValue.invoke(value);
90+
} catch (Exception e) {
91+
return value;
92+
}
93+
} else {
94+
return value;
95+
}
96+
}
8497
}

0 commit comments

Comments
 (0)