有我的代码。有人能告诉我出了什么问题吗?
for(String motorProposalId : proposalMap.keySet()) {
MotorPolicy mp = policyMap.get(motorProposalId);
String query = "SELECT p From Payment Where p.referenceNo = :motorProposalId"+
" AND commenmanceDate >= :startDate AND commenmanceDate <= :endDate";
Query qu = em.createQuery(query);
qu.setParameter("commenmanceDate", mp.getCommenmanceDate());
qu.setParameter("motorProposalId", motorProposalId);
qu.setParameter("startDate", motorDailyCriteria.getStartDate());
qu.setParameter("endDate", motorDailyCriteria.getEndDate());
答案 0 :(得分:2)
查询在语法上是不正确的,因为查询字符串中没有命名参数commenmanceDate
。如果commenmanceDate
应该命名为参数,那么它必须以':'为前缀。
此外,查询可能存在一些语义问题,因为在执行查询之前,所有包含在日期比较中的值都是已知的。