timestampdiff equivalent in JPQL (without using cr

2019-07-06 22:30发布

问题:

I want to use following mysql function in JPQL:-

TIMESTAMPDIFF(YEAR, some_start_date, CURDATE());

Also, I do not have to use Criteria in JPA, since we are following practice of writing Named queries(JPQL). So, how can this function be written in JPQL?

回答1:

There is no timestampdiff in JPQL. Eclipse has keyword FUNC which allows to call DB-specific functions, like timestampdiff.



回答2:

If you are using JPA 2.1 or later version, try the following JPQL:

select a from EntityClass a where FUNCTION('DATEDIFF', CURRENT_DATE, a.createDt) / 365 >= 1

The above JPQL is to retrieve all entities which have been created for more than 1 year.