diff --git a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java b/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java index df5d176f0..0b9919b7f 100644 --- a/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java +++ b/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java @@ -306,8 +306,12 @@ public class JpaQueryCreator extends AbstractQueryCreator, return builder.between(getComparablePath(root, part), first, second); case GREATER_THAN: return builder.greaterThan(getComparablePath(root, part), provider.next(Comparable.class)); + case GREATER_THAN_EQUAL: + return builder.greaterThanOrEqualTo(getComparablePath(root, part), provider.next(Comparable.class)); case LESS_THAN: return builder.lessThan(getComparablePath(root, part), provider.next(Comparable.class)); + case LESS_THAN_EQUAL: + return builder.lessThanOrEqualTo(getComparablePath(root, part), provider.next(Comparable.class)); case IS_NULL: return path.isNull(); case IS_NOT_NULL: diff --git a/src/test/java/org/springframework/data/jpa/domain/sample/User.java b/src/test/java/org/springframework/data/jpa/domain/sample/User.java index e75b75c97..f8d54e688 100644 --- a/src/test/java/org/springframework/data/jpa/domain/sample/User.java +++ b/src/test/java/org/springframework/data/jpa/domain/sample/User.java @@ -45,6 +45,7 @@ public class User { private Integer id; private String firstname; private String lastname; + private int age; @Column(nullable = false, unique = true) private String emailAddress; @@ -138,6 +139,20 @@ public class User { this.lastname = lastname; } + /** + * @return the age + */ + public int getAge() { + return age; + } + + /** + * @param age the age to set + */ + public void setAge(int age) { + this.age = age; + } + /** * Returns the email address. * diff --git a/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java b/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java index 580c86c2b..8ce15d0b9 100644 --- a/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java @@ -80,8 +80,11 @@ public class UserRepositoryTests { public void setUp() { firstUser = new User("Oliver", "Gierke", "gierke@synyx.de"); + firstUser.setAge(28); secondUser = new User("Joachim", "Arrasz", "arrasz@synyx.de"); + secondUser.setAge(35); thirdUser = new User("Dave", "Matthews", "no@email.com"); + thirdUser.setAge(43); } /** @@ -737,6 +740,26 @@ public class UserRepositoryTests { assertThat(result.getTotalPages(), is(1)); } + @Test + public void executesLessThatOrEqualQueriesCorrectly() { + + flushTestUsers(); + + List result = repository.findByAgeLessThanEqual(35); + assertThat(result.size(), is(2)); + assertThat(result, hasItems(firstUser, secondUser)); + } + + @Test + public void executesGreaterThatOrEqualQueriesCorrectly() { + + flushTestUsers(); + + List result = repository.findByAgeGreaterThanEqual(35); + assertThat(result.size(), is(2)); + assertThat(result, hasItems(secondUser, thirdUser)); + } + private Page executeSpecWithSort(Sort sort) { flushTestUsers(); diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java b/src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java index 77b1da59f..2ac7af72c 100644 --- a/src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java +++ b/src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java @@ -185,6 +185,10 @@ public interface UserRepository extends JpaRepository, JpaSpecifi List findByLastnameAndFirstnameAllIgnoringCase(String lastname, String firstname); + List findByAgeGreaterThanEqual(int age); + + List findByAgeLessThanEqual(int age); + /** * @see DATADOC-86 - Count execution for group by */