我对JPA查询有疑问。
我正在
子表达式中缺少右括号 该查询包含格式错误的结尾。
我的查询如下:
String query = (new StringBuilder()).append("SELECT COUNT(data.amount) FROM ").append("FinanceTransactionData").append(" data WHERE (data.cusId = :cusId AND data.dateOfIssue > (TO_DATE('2013-11-02','yyyy-mm-dd')) AND data.dateOfIssue < (TO_DATE('2013-12-29','yyyy-mm-dd'))").toString();
我正在尝试:
String query = (new StringBuilder()).append("SELECT COUNT(data.amount) FROM ").append("FinanceTransactionData").append(" data WHERE data.cusId = :cusId AND data.dateOfIssue BETWEEN TO_DATE('2013-11-02','yyyy-mm-dd') AND TO_DATE('2013-12-29','yyyy-mm-dd')").toString();
在db中查询有效。
答案 0 :(得分:1)
TO_DATE
不是JPQL函数,请使用参数
String query = "SELECT COUNT(data.amount) FROM FinanceTransactionData data "
+ "WHERE data.cusId = :cusId AND data.dateOfIssue "
+ "BETWEEN :fromDate AND :toDate";
如果设置参数,请务必设置正确的TemporalType。
BTW:不要使用StringBuilder来连接字符串文字,请参阅when to use StringBuilder in java