2013-05-30 85 views
0

有我的代碼。有人能告訴我什麼是錯的嗎?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()); 
+0

還沒有你陳述的問題:) – bennidi

回答

2

由於查詢字符串中沒有命名參數commenmanceDate,因此查詢在語法上不正確。如果commenmanceDate應該被命名爲參數,那麼它必須以':'作爲前綴。

此外,查詢可能有一些語義問題,因爲所有包含日期​​比較的值在執行查詢之前已知。

+0

感謝@Mikko Maunu,它現在的作品,並且我忘記**支付**後**添加**。 –