استعلام بيانات 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";

إذا قمت بتعيين المعلمات ، فتأكد من تعيين TremporalType الصحيح.

راجع للشغل: لا تستخدم StringBuilder لتسلسل الأسلاك الحرفية ، انظر متى تستخدم StringBuilder في Java

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top