春季数据 findByStartDateBetween 不起作用

Posted

技术标签:

【中文标题】春季数据 findByStartDateBetween 不起作用【英文标题】:Spring data findByStartDateBetween doesn't work 【发布时间】:2015-02-27 01:33:40 【问题描述】:

我编写了一个 Spring MVC 应用程序。现在我尝试实现spring数据存储库,它有一个方法可以通过日期参数找到所有Deal对象。

我试图实现这一点,就像在 Spring Data 网站 (findByStartDateBetween) 上一样:

 @Transactional(readOnly = true)
 public interface DealRepository extends JpaRepository <Deal, Long>     
    List<Deal> findByStartDateBetween(Date from, Date to);

但它不起作用。它无法创建DealRepository bean。

我也尝试写一些自定义的@Query,但也失败了。

你能给我一些建议吗?

【问题讨论】:

您需要包含更多实现 findByStartDateBetween 的代码。 【参考方案1】:

您需要有@Repository 表示法,它理想地在应用程序开始时创建 bean。

【讨论】:

【参考方案2】:

这应该可以工作

List<Deal> findByCreatedDateBetween(Date start, Date end);

【讨论】:

【参考方案3】:

解决了这个问题。我写了自定义查询,重要的是不要忘记使用@Param。这就是我得到的

 @Transactional(readOnly = true)
public interface DealRepository extends JpaRepository<Deal, Long> 

    @Modifying
    @Transactional
    @Query("select d from Deal d where d.createdDate >= :from and d.createdDate <= :to ")
    List<Deal> findByCreatedDateBetween(@Param("from") Date from, @Param("to") Date to);

【讨论】:

不是你问的。这是一种解决方法,但不是答案。

以上是关于春季数据 findByStartDateBetween 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在春季获取、转换和更新数据的最佳方法是啥?

春季启动数据@query到DTO

春季数据休息

春季启动指标+数据狗

在春季更新应用程序范围的数据?

杰克逊映射无限递归。春季数据休息