diff --git a/.gitignore b/.gitignore index 1a71d533d..3b7794d44 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,6 @@ target/ .sonar4clipse *.sonar4clipseExternals .DS_Store +node +node_modules +package*.json \ No newline at end of file diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java index ea378384e..fd9eec9e3 100644 --- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java +++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/PersistenceProvider.java @@ -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; } diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterBinder.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterBinder.java index 9298308d6..a09e30b6d 100644 --- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterBinder.java +++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterBinder.java @@ -72,6 +72,7 @@ public class ParameterBinder { public T bind(T jpaQuery, QueryParameterSetter.QueryMetadata metadata, JpaParametersParameterAccessor accessor) { + bind(metadata.withQuery(jpaQuery), accessor, ErrorHandling.STRICT); return jpaQuery; } diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQueryUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQueryUnitTests.java index e7210d3cb..0a0226635 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQueryUnitTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/ExpressionBasedStringQueryUnitTests.java @@ -105,7 +105,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(); } diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactoryUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactoryUnitTests.java index ca3198772..771ed4e7c 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactoryUnitTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/QueryParameterSetterFactoryUnitTests.java @@ -62,7 +62,8 @@ class QueryParameterSetterFactoryUnitTests { when(binding.getOrigin()).thenReturn(ParameterOrigin.ofParameter("NamedParameter", 1)); assertThatExceptionOfType(IllegalStateException.class) // - .isThrownBy(() -> setterFactory.create(binding, DeclaredQuery.of("from Employee e where e.name = :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("from Employee e where e.name = :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"); } diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java index e959f8b46..8c95b38bf 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java @@ -136,7 +136,7 @@ class StringQueryUnitTests { true); assertThat(query.hasParameterBindings()).isTrue(); - assertThat(query.getQueryString()) + 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"); @@ -152,6 +152,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 @@ -179,7 +184,6 @@ class StringQueryUnitTests { assertThat(query.getQueryString()).isEqualTo( "select u from User u where u.firstname like :firstname or u.firstname like :firstname_1 or u.firstname like :firstname_1 or u.firstname like :firstname"); - query = new StringQuery("select u from User u where u.firstname like %:firstname or u.firstname =:firstname", true); assertThat(query.hasParameterBindings()).isTrue(); @@ -582,7 +586,7 @@ class StringQueryUnitTests { assertThat(new StringQuery(testQuery, false) // .usesJdbcStyleParameters()) // - .describedAs(testQuery) + .describedAs(testQuery) // .describedAs(testQuery) // .isFalse(); }