JPQL没有获得参数

时间:2013-05-30 07:05:24

标签: jpql

有我的代码。有人能告诉我出了什么问题吗?

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());

1 个答案:

答案 0 :(得分:2)

查询在语法上是不正确的,因为查询字符串中没有命名参数commenmanceDate。如果commenmanceDate应该命名为参数,那么它必须以':'为前缀。

此外,查询可能存在一些语义问题,因为在执行查询之前,所有包含在日期比较中的值都是已知的。