2016-12-20 21 views
0

jpaを使用して簡単なテーブルを更新しようとしています。私はそれjpaでnamedqueryを使用して更新クエリが正しく動作しない

@NamedQuery(name="updatedetails",query="update myentity set enddesc=?, startdesc=? Where id=?") 

私のコードのためにJPA namedqueryを書かれている次のようであるmyentityが私のクラス名

ある

em.createNamedQuery("updatedetails",myentity.class).serParameter(1, "abcd").serParameter(2,"gjvg").serParameter(3, "gghjj").executeUpdate(); 

これは、次のエラー

Encountered "=" at character but expected ["."] While parsing the query 

はです私をスローしますクエリに何か問題があります

答えて

1

JPAという名前のクエリは、実際の名前を使用する必要があると考えています。?ではなく、パラメータプレースホルダです。後者はプリペアドステートメントで使用されます。したがって、このような作業をする必要があります:

@NamedQuery(name="updatedetails",query="update myentity set enddesc = :enddesc, startdesc = :startdesc Where id = :id") 

List<myentity> results = em.createNamedQuery("updatedetails", myentity.class) 
          .setParameter("enddesc", "abcd") 
          .setParameter("startdesc", "gjvg") 
          .setParameter("id", "gghjj") 
          .getResultList(); 

注意点として、あなたはおそらく作るべきあなたのクラス名ではなく、あなたが現在持っているものよりも、MyEntityそれを呼び出すすなわち、大文字で始まります。

+0

はい。そのようにしてください。しかし、それは更新されておらず、何のエラーも投げていません。 executeupdateから変更が必要なことはありますか? – Syed

関連する問題