hql
2010-11-24 4 views 0 likes 
0
Query query = session.createQuery("Update Contact set firstname = 'sdf' where firstname= 'Deepak'"); 
int result = query.executeUpate(); 

、私は次のエラーを取得しています上記のクエリを実行するHibernateクエリー言語アップデートエラー

expecting DOT, found '=' near line 1, column 30 
[Update Contact set firstname = 'sdf' where firstname= 'Deepak'] 

誰かがあなたはSQLでクエリを書いているこの

答えて

2

で私を助けてくださいすることができ、未HQL。 HQLでの一括更新は次のようになります:

String query = "update Contact c set c.firstname = :newName where c.name = :oldName"; 
int result = s.createQuery(query) 
     .setString("newName", "sdf") 
     .setString("oldName", "Deepak") 
     .executeUpdate(); 

しかし、ファーストネームのディーパックを持つ行がたくさん存在しない限り、これは間違ったアプローチです。 1つのオブジェクトを更新するだけの場合は、a)このオブジェクトを返すクエリを実行し、b)オブジェクトをちょうど更新してください。

関連する問題