[英]JAVA JPA Checking a date lies between two dates
I am using JAVA JPA Criteria Builder to check a whether a date lies between two dates or not. 我正在使用JAVA JPA Criteria Builder检查日期是否介于两个日期之间。 I am passing the date into the function which is having a query on a table and that table have two dates columns.
我将日期传递给在一个表上进行查询的函数,并且该表有两个日期列。 Now i want to check the date which i have passed lies between the two or not.
现在我想检查我经过的日期是否介于两者之间。
private CorpClientsCommRateD getCorpClientsCommRateD(Date date) {
CorpClientsCommRateD commissionRate=null;
try {
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<CorpClientsCommRateD> query = builder.createQuery(CorpClientsCommRateD.class);
Root<CorpClientsCommRateD> root = query.from(CorpClientsCommRateD.class);
List<Predicate> conditions = new ArrayList();
conditions.add(builder.between(date,root.get("effFromDate"),root.get("effToDate")));
query.select(root)
.where(conditions.toArray(new Predicate[]{}));
TypedQuery<CorpClientsCommRateD> commissionRates = em.createQuery(query);
commissionRate=commissionRates.getSingleResult();
}
catch(Exception exp)
{
return commissionRate;
}
return commissionRate;
}
I am getting a error that Error:(148, 35) java: no suitable method found for between(java.util.Date,javax.persistence.criteria.Path,javax.persistence.criteria.Path) 我收到一个错误消息,错误:(148,35)java:在之间找不到合适的方法(java.util.Date,javax.persistence.criteria.Path,javax.persistence.criteria.Path)
Kindly help 请帮助
Your first argument to between
is being passed as a Java literal, so to use that in Criteria you need to convert it to either a query parameter between
第一个参数将作为Java文字传递,因此要在Criteria中使用该参数,您需要将其转换为查询参数
builder.parameter(Date.class, "mydate")
or convert it to a Criteria literal. 或将其转换为Criteria标准。
builder.literal(date)
But then you could have got that by simply looking at the javadocs for that method and working out how to get a Criteria "Expression" 但是,您只需查看该方法的javadocs并弄清楚如何获得“表达”条件就可以了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.