Pergunta

Eu tenho uma pergunta sobre uma consulta JPA.

Estou entendendo

A parêntese certa está ausente da subexpressão.
A consulta contém um final malformado.

Minha consulta se parece com a seguinte:

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

Eu estava tentando com:

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

Em DB, essa consulta funciona.

Foi útil?

Solução

TO_DATE não é uma função JPQL, tente com parâmetros

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

Se você definir os parâmetros, certifique -se de definir o TEMPERALTYPE correto.

BTW: Não use StringBuilder para concatenar literais de string, veja Quando usar o StringBuilder em Java

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top