Question

J'ai une question sur une requête JPA.

Je suis en train

La bonne parenthèse est absente de la sous-expression.
La requête contient une fin mal formée.

Ma requête ressemble à ceci:

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

J'essayais avec:

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, cette requête fonctionne.

Était-ce utile?

La solution

TO_DATE n'est pas une fonction JPQL, essayez-le avec des paramètres

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

Si vous définissez les paramètres, assurez-vous de définir le bon type temporal.

BTW: N'utilisez pas StringBuilder pour concaténer les littéraux de chaîne, voir Quand utiliser StringBuilder en Java

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top