如何在Spring CrudRepository中使用固定值?

问题描述 投票:0回答:2

是否可以直接在

CrudRepository
查询方法中添加固定值?喜欢:

findAdults(int age > 17);
findAllByBookingDateAndStatus(
    LocalDate bookingDate = LocalDate.now().minusDays(1),
    TypeStatus status = TypeStatus.FAILED);
java spring spring-data-jpa spring-data spring-repositories
2个回答
4
投票

作为自定义

@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);
}

-3
投票

对于第一个,只需使用:

findByAgeGreaterThan(Integer age);

对于第二个,只需提供要匹配的值,如下所示:

findAllByBookingDateAndStatus(LocalDate bookingDate, TypeStatus status);

Spring 使用查询名称中使用的单词“LessThan”、“And”、“Between”等来了解您想要的内容

© www.soinside.com 2019 - 2024. All rights reserved.