Запрос данных JPA: правая скобка отсутствует в субэкспрессии

StackOverflow https://stackoverflow.com/questions/20353242

  •  25-08-2022
  •  | 
  •  

Вопрос

У меня есть вопрос о запросе 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 этот запрос работает.

Это было полезно?

Решение

TO_DATE не является функцией JPQL, попробуйте ее с параметрами

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

Если вы установите параметры, обязательно установите правильный ThementPe.

Кстати: не используйте StringBuilder для конкатената строковых литералов, см. Когда использовать StringBuilder на Java

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top