From 2a2eea713658776883e641eb798904ec14c89ec0 Mon Sep 17 00:00:00 2001 From: Giao Ho Date: Thu, 19 Jan 2023 01:05:53 +0700 Subject: [PATCH 1/3] Remove commons-lang3.version property --- build.gradle | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index e16b6c3..5feae4e 100644 --- a/build.gradle +++ b/build.gradle @@ -30,8 +30,7 @@ ext { 'spring-boot.version' : '3.0.0', 'spring-framework.version' : '6.0.2', 'spring-dynamic-commons.version': '2.0.0', - 'hibernate.version' : '6.1.5.Final', - 'commons-lang3.version' : '3.12.0' + 'hibernate.version' : '6.1.5.Final' ] managedVersions = [ 'org.springframework:spring-aspects' : 'spring-framework.version', @@ -41,8 +40,7 @@ ext { 'org.springframework.data:spring-data-commons': 'spring-boot.version', 'org.springframework.data:spring-data-jpa' : 'spring-boot.version', 'com.github.joutvhu:spring-dynamic-commons' : 'spring-dynamic-commons.version', - 'org.hibernate:hibernate-core' : 'hibernate.version', - 'org.apache.commons:commons-lang3' : 'commons-lang3.version' + 'org.hibernate.orm:hibernate-core' : 'hibernate.version' ] otherVersions = [ 'org.springframework.boot:spring-boot-dependencies': 'spring-boot.version' From 6d6e89de2214cee076a832b47c9e5649dea44d4e Mon Sep 17 00:00:00 2001 From: Giao Ho Date: Thu, 16 Feb 2023 22:34:24 +0700 Subject: [PATCH 2/3] Remove import hibernate in code --- build.gradle | 2 +- .../query/DynamicJpaParameterAccessor.java | 25 ++++++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 5feae4e..a15b720 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { } group = 'com.github.joutvhu' -version = '3.0.6' +version = '3.0.7' def snapshotVersion = version.endsWith('-SNAPSHOT') || version.endsWith('.SNAPSHOT') diff --git a/src/main/java/org/springframework/data/jpa/repository/query/DynamicJpaParameterAccessor.java b/src/main/java/org/springframework/data/jpa/repository/query/DynamicJpaParameterAccessor.java index a6d1cbe..078cb19 100644 --- a/src/main/java/org/springframework/data/jpa/repository/query/DynamicJpaParameterAccessor.java +++ b/src/main/java/org/springframework/data/jpa/repository/query/DynamicJpaParameterAccessor.java @@ -1,8 +1,8 @@ package org.springframework.data.jpa.repository.query; -import org.hibernate.query.TypedParameterValue; import org.springframework.data.repository.query.Parameters; +import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; @@ -72,13 +72,26 @@ private Map getParamModel(JpaParametersParameterAccessor accesso Object value = accessor.getValue(parameter); if (value != null && parameter.isBindable()) { String key = parameter.getName().orElse(String.valueOf(parameter.getIndex())); - if (value instanceof TypedParameterValue) { - result.put(key, ((TypedParameterValue) value).getValue()); - } else { - result.put(key, value); - } + result.put(key, getParameterValue(value)); } }); return result; } + + @SuppressWarnings("java:S1872") + private Object getParameterValue(Object value) { + Class valueClass = value.getClass(); + String className = valueClass.getName(); + if ("org.hibernate.query.TypedParameterValue".equals(className) || + "org.hibernate.jpa.TypedParameterValue".equals(className)) { + try { + Method getValue = valueClass.getMethod("getValue"); + return getValue.invoke(value); + } catch (Exception e) { + return value; + } + } else { + return value; + } + } } From 95b18e4059ff5b7f5c1a88344f152c626c0d6043 Mon Sep 17 00:00:00 2001 From: Giao Ho Date: Thu, 16 Feb 2023 22:43:37 +0700 Subject: [PATCH 3/3] Bump version lombok --- build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index a15b720..d34a437 100644 --- a/build.gradle +++ b/build.gradle @@ -67,8 +67,8 @@ dependencies { implementation 'org.hibernate.orm:hibernate-core' - compileOnly 'org.projectlombok:lombok:1.18.24' - annotationProcessor 'org.projectlombok:lombok:1.18.24' + compileOnly 'org.projectlombok:lombok:1.18.26' + annotationProcessor 'org.projectlombok:lombok:1.18.26' testImplementation(platform('org.junit:junit-bom:5.8.2')) testImplementation 'org.junit.jupiter:junit-jupiter-api' @@ -84,8 +84,8 @@ dependencies { testImplementation 'com.h2database:h2' testImplementation 'com.github.joutvhu:spring-dynamic-freemarker:1.0.0' - testCompileOnly 'org.projectlombok:lombok:1.18.24' - testAnnotationProcessor 'org.projectlombok:lombok:1.18.24' + testCompileOnly 'org.projectlombok:lombok:1.18.26' + testAnnotationProcessor 'org.projectlombok:lombok:1.18.26' } jar {