Jpa 在localdate列中添加天数
我使用spring数据jpa 我想做一些类似的事情Jpa 在localdate列中添加天数,jpa,spring-data-jpa,jpql,Jpa,Spring Data Jpa,Jpql,我使用spring数据jpa 我想做一些类似的事情 @Query("update FROM sample s set s.availableForTest=true WHERE (s.buildDate + s.delay) <= date and availableForTest=false") public void updateToAvailabilityForTest(@Param("date") LocalDate date); @Query(“从示例s集更新s.availab
@Query("update FROM sample s set s.availableForTest=true WHERE (s.buildDate + s.delay) <= date and availableForTest=false")
public void updateToAvailabilityForTest(@Param("date") LocalDate date);
@Query(“从示例s集更新s.availableForTest=true,其中(s.buildDate+s.delay)否,这在JPQL中是不可能的。即使在普通SQL中,这至少在SQL Server和MySQL中也是可能的。有专门的函数用于此:
SQL Server-
MySQL-
我认为这在甲骨文中是可能的
因此,最简单的方法是使用此日期添加函数执行本机查询
如果您想留在JPQL的世界中,并拥有可用的JPA2.1,那么他们在那里介绍了JPQL中的函数,您可以使用该函数调用数据库函数
请注意:
函数
是特定于数据库的–它不转换函数
以任何方式调用以支持与其他JPQL函数一样的不同数据库
做
在您的情况下,使用SQL Server时,如下所示:
update FROM sample s set s.availableForTest=true WHERE FUNCTION('DATEADD', 'day' , s.delay, s.buildDate) <= :date and availableForTest=false
updatefromssamplesets.availableForTest=true,其中函数('DATEADD','day',s.delay,s.buildDate)