JPAで挿入クエリを作成する方法
というカラムを持つテーブルにデータを挿入しようとしています。
Query query = em.createQuery("INSERT INTO TestDataEntity (NAME, VALUE) VALUES (:name, :value)");
query.setParameter("name", name);
query.setParameter("value", value);
query.executeUpdate();
と表示され、以下のような例外が発生します。
ERROR org.hibernate.hql.internal.ast.ErrorCounter - line 1:42: unexpected token: VALUES
また、ネイティブクエリによるレコードの挿入もできません。
Query query = em.createNativeQuery("INSERT INTO TEST_DATA (NAME, VALUE) VALUES (:name, :value);");
query.setParameter("name", name);
query.setParameter("value", value);
query.executeUpdate();
別の例外がスローされています。
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute statement
質問です:
- クエリ文字列のどこがおかしいのでしょうか?
ありがとうございました。
7
3
問題を解決しました。
これ]1による。
JPAにINSERT文はありません。
しかし、私はネイティブクエリで問題を解決することができました。私は間違ってクエリの最後に冗長な;を入れてしまったので、それを削除することで問題は解決しました。
筆者は、ネイティブクエリでinsertを使用している例を2つ見つけました(1と2)。そうすると、クエリーは次のようになります。
これを試してみてください。
私は、以下の方法でこれを行うことができました - 私はちょうど2つのフィールドidとnameを持つBikeというテーブルを持っていました。私はそれをデータベースに挿入するために下記を使用しました。