Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 在localdate列中添加天数_Jpa_Spring Data Jpa_Jpql - Fatal编程技术网

Jpa 在localdate列中添加天数

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

我使用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.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)