我需要在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时 其中trunc(sellerpaym0_.PAYMENT_DATE)= TO_DATE('2019-05-26','yyyy-MM-dd'));
我不知道该怎么做。
任何帮助将不胜感激。