Hibernate Spring数据-Customer@Query,不匹配属性

Hibernate Spring数据-Customer@Query,不匹配属性,hibernate,spring-mvc,spring-data,spring-data-jpa,Hibernate,Spring Mvc,Spring Data,Spring Data Jpa,我试图设置一个不是自动生成的自定义@Query,但不管我尝试什么,它都试图将方法名称中的属性与返回对象中的属性相匹配 如何运行此查询而不尝试构建查询,并导致org.springframework.data.mapping.PropertyReferenceException失败?也许@Query是错误的注释 我的回购协议目前如下所示: @Repository public interface ScheduleRepository extends CrudRepository<Schedul

我试图设置一个不是自动生成的自定义@Query,但不管我尝试什么,它都试图将方法名称中的属性与返回对象中的属性相匹配

如何运行此查询而不尝试构建查询,并导致org.springframework.data.mapping.PropertyReferenceException失败?也许@Query是错误的注释

我的回购协议目前如下所示:

@Repository
public interface ScheduleRepository extends CrudRepository<Schedule, Integer>
{
    @Query
    List<Schedule> findByTypeAndAirDateBetweenOrderByAirDateDesc(String type, Date startDate, Date endDate);

    @Query("SELECT s FROM Schedule s WHERE s.type = 'A' AND (s.airDate BETWEEN :startDate AND :endDate) ORDER BY ABS(DATEDIFF(s.airDate, NOW())) LIMIT 1")
    List<Schedule> findCurrentAd(Date startDate, Date endDate);
}
@Repository
public interface ScheduleRepository extends CrudRepository<Schedule, Integer>
{
    @Query
    List<Schedule> findByTypeAndAirDateBetweenOrderByAirDateDesc(String type, Date startDate, Date endDate);

    @Query("SELECT s FROM Schedule s WHERE s.type = 'A' AND (s.airDate BETWEEN ?1 AND ?2) ORDER BY ABS(DATEDIFF(s.airDate, NOW())) LIMIT 1")
    List<Schedule> findCurrentAd(Date startDate, Date endDate);
}
当在我的计划类中找不到匹配的“当前”字段时,会发生异常。我不想这样。我只想让它按照我定义的那样运行查询,不需要任何问题

正如您可能已经了解到的,我是SpringMVC&Data的新手


谢谢任何人的帮助

如果使用绑定参数,如:VALUE,则应使用@Paramvalue来匹配@Query注释。试试这个:

@Repository
public interface ScheduleRepository extends CrudRepository<Schedule, Integer>
{
    @Query
    List<Schedule> findByTypeAndAirDateBetweenOrderByAirDateDesc(String type, Date startDate, Date endDate);

    @Query("SELECT s FROM Schedule s WHERE s.type = 'A' AND (s.airDate BETWEEN :startDate AND :endDate) ORDER BY ABS(DATEDIFF(s.airDate, NOW())) LIMIT 1")
    List<Schedule> findCurrentAd(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
}
n绑定表示方法中的参数序列?1=开始日期,2=结束日期


参考资料:

我的回答是否解决了您的问题@Dave V?