Equality Condition Keywords
We can just append the property name without any keyword for an exact match condition:
List<User> findByName(String name);
List<User> findByNameIs(String name);
List<User> findByNameEquals(String name);
List<User> findByNameIsNot(String name);
List<User> findByNameIsNull();
List<User> findByNameIsNotNull();
List<User> findByActiveTrue();
List<User> findByActiveFalse();
Similarity Condition Keywords
List<User> findByNameStartingWith(String prefix);
List<User> findByNameEndingWith(String suffix);
List<User> findByNameContaining(String infix);
List<User> findByNameLike(String likePattern);
String likePattern = "a%b%c";
userRepository.findByNameLike(likePattern);
Comparison Condition Keywords
List<User> findByAgeLessThan(Integer age);
List<User> findByAgeLessThanEqual(Integer age);
List<User> findByAgeGreaterThan(Integer age);
List<User> findByAgeGreaterThanEqual(Integer age);
List<User> findByAgeBetween(Integer startAge, Integer endAge);
payments received by particular person Between two dates.
List<Payment> findAllByReceiveByAndDateTimeBetween(String receiveBy, String fromDate, String toDate);
List<User> findByAgeIn(Collection<Integer> ages);
List<User> findByBirthDateAfter(ZonedDateTime birthDate);
List<User> findByBirthDateBefore(ZonedDateTime birthDate);
Multiple Condition Expressions
List<User> findByNameOrBirthDate(String name, ZonedDateTime birthDate);
List<User> findByNameOrBirthDateAndActive(String name, ZonedDateTime birthDate, Boolean active);
Sorting the Results
List<User> findByNameOrderByName(String name);
List<User> findByNameOrderByNameAsc(String name);
List<User> findByNameOrderByNameDesc(String name);
findByInventoryIdIn(List<Long> inventoryIdList)
Spring data, find by property of a nested object:
public class Student {
private String name;
private List<Grade> grades;
}
public class Grade {
private String className;
private String grade;
}
public List<Student> findByGrades_ClassName(final String className);
Spring Data JPA - Limiting Query Results:
Employee findTopByOrderBySalaryDesc();
Employee findTopByOrderBySalaryAsc();
List<Employee> findTop3ByOrderBySalaryDesc();
List<Employee> findTop3ByOrderBySalaryAsc();
List<Employee> findFirst2BySalary(int salary);
List<Employee> findFirst2ByDeptOrderBySalaryDesc(String deptName);