将mysql查询转换为spring JPA查询

时间:2017-10-19 15:34:41

标签: java spring hibernate spring-data-jpa jpql

我有以下要转换为SPring JPA的mysql查询。

SELECT * FROM SERVER s WHERE s.COMPLETE_DT BETWEEN (DATE_SUB('2014-11-07 16:30:20', INTERVAL 20 MINUTE)) 
AND (DATE_SUB('2014-11-07 16:30:20', INTERVAL 10 MINUTE)) 

我是按照以下方式进行的

@Query("SELECT s FROM Server s WHERE s.completeDt BETWEEN (DATE_SUB(%?1%, INTERVAL 20 MINUTE)) AND (DATE_SUB(%?1%, INTERVAL 10 MINUTE)))
List<Server> findDate(Date dt);

但收到错误

  

“间隔”无法识别

1 个答案:

答案 0 :(得分:2)

使用Spring Data,您可以使用如下查询:

List<Server> findByCompleteDtBetween(final LocalDateTime startDate, final LocalDateTime endDate);

并在服务中计算startDate和endDate以适应目标间隔。

查看更多:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation