春季 JPA 标准 - 截断和 WHERE 条款的to_date



我需要在我的 Spring JPA 层中构建以下查询语句。

select *  from PAYMENTS sellerpaym0_ 
where trunc(sellerpaym0_.PAYMENT_DATE)=TO_DATE('2019-05-26','yyyy-MM-dd'));

在我的 Java 代码中,我有

   public class MySpecification<E> implements Specification<E> {
    private SearchCriteria criteria;

    @Override
    public Predicate toPredicate(Root<E> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
  if (criteria.getOp().equalsIgnoreCase("=")) {
       return builder.equal(root.get(criteria.getKey()), criteria.getValue());
}
}
public static class MySpecificationBuilder {
        private String key;
        private String op;
        private String value;

        public static MySpecification spec(String key, String op, Comparable value) {
            return new MySpecification(new SearchCriteria(key, op, value));
        }
    }

当运算符为"="时,toPredicate 方法工作得很好,我不需要自定义操作。

但是当我需要表示 SQL 时其中特伦克(sellerpaym0_.PAYMENT_DATE(=TO_DATE('2019-05-26','yyyy-MM-dd'((;

我无法理解如何做到这一点。

任何帮助将不胜感激。

使用CriteriaBuilder.function方法,文档