diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java index e24613e6f..6ef501c06 100644 --- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java +++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java @@ -40,7 +40,11 @@ import jakarta.persistence.criteria.Predicate; import jakarta.persistence.criteria.Root; import org.springframework.dao.EmptyResultDataAccessException; -import org.springframework.data.domain.*; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.data.jpa.convert.QueryByExamplePredicateBuilder; import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.provider.PersistenceProvider; @@ -287,7 +291,6 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation implements JpaRepositoryImplementation spec) { @@ -483,8 +482,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation List findAll(Example example, Sort sort) { - return getQuery(new ExampleSpecification<>(example, escapeCharacter), example.getProbeType(), sort) - .getResultList(); + return getQuery(new ExampleSpecification<>(example, escapeCharacter), example.getProbeType(), sort).getResultList(); } @Override diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/UserSpecifications.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/UserSpecifications.java index e63e0f850..5e0b71012 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/UserSpecifications.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/domain/sample/UserSpecifications.java @@ -32,9 +32,6 @@ public class UserSpecifications { /** * A {@link Specification} to match on a {@link User}'s firstname. - * - * @param firstname - * @return */ public static Specification userHasFirstname(final String firstname) { @@ -43,9 +40,6 @@ public class UserSpecifications { /** * A {@link Specification} to match on a {@link User}'s lastname. - * - * @param firstname - * @return */ public static Specification userHasLastname(final String lastname) { @@ -54,27 +48,16 @@ public class UserSpecifications { /** * A {@link Specification} to do a like-match on a {@link User}'s firstname. - * - * @param firstname - * @return */ public static Specification userHasFirstnameLike(final String expression) { - return new Specification() { - - @Override - public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { - - return cb.like(root.get("firstname").as(String.class), String.format("%%%s%%", expression)); - } - }; + return (root, query, cb) -> cb.like(root.get("firstname").as(String.class), String.format("%%%s%%", expression)); } /** * A {@link Specification} to do an age check. * * @param age upper (exclusive) bound of the age - * @return */ public static Specification userHasAgeLess(final Integer age) { @@ -84,33 +67,19 @@ public class UserSpecifications { /** * A {@link Specification} to do a like-match on a {@link User}'s lastname but also adding a sort order on the * firstname. - * - * @param firstname - * @return */ public static Specification userHasLastnameLikeWithSort(final String expression) { - return new Specification() { + return (root, query, cb) -> { - @Override - public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { + query.orderBy(cb.asc(root.get("firstname"))); - query.orderBy(cb.asc(root.get("firstname"))); - - return cb.like(root.get("lastname").as(String.class), String.format("%%%s%%", expression)); - } + return cb.like(root.get("lastname").as(String.class), String.format("%%%s%%", expression)); }; } private static Specification simplePropertySpec(final String property, final Object value) { - return new Specification() { - - @Override - public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder builder) { - - return builder.equal(root.get(property), value); - } - }; + return (root, query, builder) -> builder.equal(root.get(property), value); } } diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java index bd8664520..ba8affb9f 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java @@ -2643,6 +2643,7 @@ public class UserRepositoryTests { @Test // GH-2388 void existsWithSpec() { + flushTestUsers(); Specification minorSpec = userHasAgeLess(18);