Pregunta

Tengo una pregunta sobre una consulta JPA.

Me estoy poniendo

Falta el paréntesis correcto en la subexpresión.
La consulta contiene un final malformado.

Mi consulta se ve así:

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

Estaba intentando con:

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

En DB esa consulta funciona.

¿Fue útil?

Solución

TO_DATE no es una función jpql, pruébelo con parámetros

String query = "SELECT COUNT(data.amount) FROM FinanceTransactionData data "
    + "WHERE data.cusId = :cusId AND data.dateOfIssue "
    + "BETWEEN :fromDate AND :toDate";

Si establece los parámetros, asegúrese de establecer el TempealtyPE correcto.

Por cierto: no use StringBuilder para concatenar literales de cadena, ver Cuándo usar StringBuilder en Java

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top