Java JPA Hibernate公式中使用TIMESTAMPDIFF的SQL文本

Java JPA Hibernate公式中使用TIMESTAMPDIFF的SQL文本,java,mysql,hibernate,jpa,formula,Java,Mysql,Hibernate,Jpa,Formula,对于使用@Formula定义了伪列的JPA实体: @Formula("TIMESTAMPDIFF(SECOND, dateColA, dateColB)") private Long duration; 在这里,SECOND被视为一个常量文本(使用MySQL),但是,在生成的JPQL中,它被视为一个列名,就像dateColA和dateColB一样,比如: where ... TIMESTAMPDIFF(entity_.SECOND, entity_.dateColA, entity_.date

对于使用
@Formula
定义了伪列的JPA实体:

@Formula("TIMESTAMPDIFF(SECOND, dateColA, dateColB)")
private Long duration;
在这里,
SECOND
被视为一个常量文本(使用MySQL),但是,在生成的JPQL中,它被视为一个列名,就像
dateColA
dateColB
一样,比如:

where ... TIMESTAMPDIFF(entity_.SECOND, entity_.dateColA, entity_.dateColB) ...
我想知道如何为
第二个
文本正确生成JPQL


谢谢将TIMESTAMPDIFF(SECOND,dateColA,dateColB)封装在mysql函数中

这在Java代码中是:

@Formula("second_diff(dateColA, dateColB)")
private Long duration;
要创建函数,请执行以下操作:

DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `second_diff`( dateColA date, dateColB date ) RETURNS int(11)
BEGIN
   DECLARE diff INT;
   SET diff =  TIMESTAMPDIFF(SECOND, dateColA, dateColB);
   RETURN diff;
END$$
DELIMITER ;
中的答案在这里也会有所帮助。