2016-03-24 7 views
0

@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 'を使用します。

ありがとうございます。

+0

より多くの例を見つけることができます。 JPQLには "weekcal"、 "to_date"はありません。 –

答えて

0

@Query("SELECT c.currency, SUM(c.population) FROM Country c WHERE c.continents GROUP BY c.currency HAVING COUNT(c) > 1")

int getCurrencyCount(@Param("currency") Long currency,@Param("population") Long population, @Param("continents ") String continents)

クエリは明らかにINVALID JPQLあり、ここで JPA Query Structure

関連する問題