SpringData中的参数查询方法

时间:2018-07-02 15:52:54

标签: spring spring-data-jpa spring-data

我正在尝试使用SpringData查询方法:

  List<RecordValue> findByValueDateBetweenOneDateAndTwoDateLike(LocalDateTime oneDate, LocalDateTime twoDate);

但是由于我的实体中缺少LocalDateTime oneDate,LocalDateTime twoDate,所以我无法使用它们。

我无法在SpringDoc中找到如何将非实体字段与DataQuery一起使用的方法名称。我想在没有@ Query,@ Param的情况下做到这一点。

也许有人知道吗? 谢谢

1 个答案:

答案 0 :(得分:0)

来自the documentation

  

之间:findByStartDateBetween:…其中x.startDate在1之间?和?2

也就是说,从方法名称派生的自动查询有其局限性。非常适合非常简单的查询,这些查询可以使方法名称保持理智(例如,findByName)。但是对于更复杂的查询,最好的策略几乎总是选择一个好的方法名称,用@Query注释该方法,并明确指定JPQL查询:

@Query("select v from RecordValue v where v.valueDate between :start and :end)
List<RecordValue> findWithValueDateInInclusiveRange(@Param("start") LocalDateTime start, @Param("end") LocalDateTime end);