@queryを使用してSpringブートJpaでクエリを作成しました。group by句は、springブートjpaでユーザー入力を受け取りますか?
[WARN] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 979, SQLState: 42000 [ERROR] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - ORA-00979: not a GROUP BY expression
注:weekcalは、2つの日付のパラメータを受け取り、varchar型を返すSQLの私のユーザー定義関数であるそれは私が私のテストケースを実行したときに、私は、このエラーのトレースを取得
@Query(
"select id,sum(col_a),sum(col_b),
weekcal(to_date(?2,'mm/dd/yyyy'),weekof) as startofweek
from abc_table
where id=?1 and
weekof between to_date(?2,'mm/dd/yyyy') and to_date(?3,'mm/dd/yyyy')
group by weekcal(to_date(?2,'mm/dd/yyyy'),weekof),id")
List<object_abc> method_abc(String id,String fromdate,String todate)
のようになります。 weekofは列名です。
JPAの引数としてユーザー入力をグループ化することができます。これは、日付をハードコードするときに同じクエリが正常に機能するためです。序数(?2)の代わりに'01 -17-2016 'を使用します。
ありがとうございます。
より多くの例を見つけることができます。 JPQLには "weekcal"、 "to_date"はありません。 –