首页 > 解决方案 > 如何在 Spring CrudRepository 中使用固定值?

问题描述

是否可以直接在CrudRepository查询方法中添加固定值?喜欢:

findAdults(int age > 17);
findAllByBookingDateAndStatus(LocalDate bookingDate = LocalDate.now().minusDays(1), TypeStatus status = TypeStatus.FAILED);

标签: javaspringspring-data-jpaspring-dataspring-repositories

解决方案


作为 custom 的替代方案@Query,您可以使用默认方法。

如果默认值是以“复杂”方式计算的,例如LocalDate.now().minusDays(1).

例如:

List<Person> findByAgeGreaterThan(int age);

default List<Person> findAdults() {
    return findByAgeGreaterThan(17);
}

---

List<Booking> findAllByBookingDateAndStatus(LocalDate bookingDate, TypeStatus status);

default List<Booking> findAllYesterdaysFailedBookings{
    return findAllByBookingDateAndStatus(LocalDate.now().minusDays(1), TypeStatus.FAILED);
}

推荐阅读