Domanda

Ho una domanda su una domanda JPA.

Sto ottenendo

La parentesi giusta manca dalla sottoespressione.
La query contiene un finale malformato.

La mia domanda sembra così:

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

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

In DB quella query funziona.

È stato utile?

Soluzione

TO_DATE non è una funzione JPQL, provalo con i parametri

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

Se si impostano i parametri, assicurarsi di impostare la giusta temporalità.

BTW: non utilizzare StringBuilder per concaterare i letterali delle stringhe, vedi Quando utilizzare StringBuilder in Java

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top