我碰到了同样的问题:
SECOND会被撇号包围,查询将引发异常。
我通过以下代码解决了这个问题:
CriteriaBuilder builder = em.getCriteriaBuilder();CriteriaQuery<MyEntity> cq = builder.createQuery( MyEntity.class );Root<MyEntity> root = cq.from( MyEntity.class );javax.persistence.criteria.expression<java.sql.Time> timeDiff = builder.function( "TIMEDIFF", java.sql.Time.class, root.<Date>get( "endDate" ), root.<Date>get( "startDate" ) );javax.persistence.criteria.expression<Integer> timeToSec = builder.function( "TIME_TO_SEC", Integer.class, timeDiff );//lessThanOrEqualTo 60 minutescq.where( builder.lessThanOrEqualTo( timeToSec, 3600 ) );return em.createQuery( cq ).getResultList();
这给了我相同的结果。



