【问题标题】:Params in SpringData query methodSpring Data 查询方法中的参数
【发布时间】:2018-07-02 15:52:54
【问题描述】:

我正在尝试制作SpringData查询方法:

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

但是由于我的实体中没有 LocalDateTime oneDate, LocalDateTime twoDate 我不能使用它们。

我在 SpringDoc 中找不到如何在方法名称中使用带有 DataQuery 的非实体字段。我想在没有@Query、@Param 的情况下这样做。

也许有人知道怎么做? 谢谢你

【问题讨论】:

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


    【解决方案1】:

    来自the documentation:

    Between: 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);
    

    【讨论】:

      猜你喜欢
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 2017-10-22
      • 2012-07-21
      • 2013-05-20
      • 1970-01-01
      • 2020-07-13
      相关资源
      最近更新 更多