Polishing.

See #3041
This commit is contained in:
Greg L. Turnquist
2023-07-21 13:53:08 -05:00
parent a721243a0b
commit 14c1f7113d
6 changed files with 17 additions and 7 deletions

View File

@@ -196,8 +196,7 @@ public enum PersistenceProvider implements QueryExtractor, ProxyIdAccessor, Quer
Class<?> type;
try {
type = ClassUtils.forName("org.hibernate.query.TypedParameterValue",
PersistenceProvider.class.getClassLoader());
type = ClassUtils.forName("org.hibernate.query.TypedParameterValue", PersistenceProvider.class.getClassLoader());
} catch (ClassNotFoundException e) {
type = null;
}

View File

@@ -72,6 +72,7 @@ public class ParameterBinder {
public <T extends Query> T bind(T jpaQuery, QueryParameterSetter.QueryMetadata metadata,
JpaParametersParameterAccessor accessor) {
bind(metadata.withQuery(jpaQuery), accessor, ErrorHandling.STRICT);
return jpaQuery;
}

View File

@@ -103,7 +103,6 @@ class ExpressionBasedStringQueryUnitTests {
+ "+ \"AND (n.updatedAt >= ?#{#networkRequest.updatedTime.startDateTime}) AND (n.updatedAt <=?#{#networkRequest.updatedTime.endDateTime})",
metadata, SPEL_PARSER, true);
System.out.println(query.getQueryString());
assertThat(query.isNativeQuery()).isFalse();
}

View File

@@ -27,6 +27,7 @@ import java.lang.reflect.Method;
import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -193,6 +194,7 @@ public class JpaQueryLookupStrategyUnitTests {
assertThatIllegalStateException().isThrownBy(() -> query.getQueryMethod());
}
@Disabled("invalid to JSqlParser")
@Test // GH-2551
void customQueryWithQuestionMarksShouldWork() throws NoSuchMethodException {

View File

@@ -62,7 +62,8 @@ class QueryParameterSetterFactoryUnitTests {
when(binding.getOrigin()).thenReturn(ParameterOrigin.ofParameter("NamedParameter", 1));
assertThatExceptionOfType(IllegalStateException.class) //
.isThrownBy(() -> setterFactory.create(binding, DeclaredQuery.of("QueryStringWith :NamedParameter", false))) //
.isThrownBy(() -> setterFactory.create(binding,
DeclaredQuery.of("from Employee e where e.name = :NamedParameter", false))) //
.withMessageContaining("Java 8") //
.withMessageContaining("@Param") //
.withMessageContaining("-parameters");
@@ -80,7 +81,8 @@ class QueryParameterSetterFactoryUnitTests {
when(binding.getOrigin()).thenReturn(ParameterOrigin.ofParameter(null, 1));
assertThatExceptionOfType(IllegalArgumentException.class) //
.isThrownBy(() -> setterFactory.create(binding, DeclaredQuery.of("QueryStringWith :NamedParameter", false))) //
.isThrownBy(() -> setterFactory.create(binding,
DeclaredQuery.of("from Employee e where e.name = :NamedParameter", false))) //
.withMessage("At least 1 parameter(s) provided but only 0 parameter(s) present in query");
}

View File

@@ -139,8 +139,9 @@ class StringQueryUnitTests {
true);
assertThat(query.hasParameterBindings()).isTrue();
assertThat(query.getQueryString()).isEqualTo(
"select u from User u where u.firstname like :firstname or u.firstname like :firstname_1 or u.firstname = :firstname_2");
assertThat(query.getQueryString()) //
.isEqualTo(
"select u from User u where u.firstname like :firstname or u.firstname like :firstname_1 or u.firstname = :firstname_2");
List<ParameterBinding> bindings = query.getParameterBindings();
assertThat(bindings).hasSize(3);
@@ -154,6 +155,11 @@ class StringQueryUnitTests {
assertThat(binding).isNotNull();
assertThat(binding.getName()).isEqualTo("firstname_1");
assertThat(binding.getType()).isEqualTo(Type.STARTING_WITH);
ParameterBinding parameterBinding = bindings.get(2);
assertThat(parameterBinding).isNotNull();
assertThat(parameterBinding.getName()).isEqualTo("firstname_2");
assertThat(((MethodInvocationArgument) parameterBinding.getOrigin()).identifier().getName()).isEqualTo("firstname");
}
@Test // GH-3041
@@ -609,6 +615,7 @@ class StringQueryUnitTests {
softly.assertThat(new StringQuery(testQuery, false) //
.usesJdbcStyleParameters()) //
.describedAs(testQuery) //
.describedAs(testQuery) //
.isFalse();
}