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

lors de l'exécution de la requête ci-dessus, je reçois l'erreur suivanteHibernate Query Language Update Erreur

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

Quelqu'un peut-il s'il vous plaît me aider

Répondre

2

Vous écrivez la requête dans SQL, Non HQL. Une mise à jour majeure en HQL ressemblerait à quelque chose comme ceci:

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(); 

Cependant, à moins il y a beaucoup de lignes avec prenom Deepak, c'est la mauvaise approche. Si vous mettez juste à jour un objet, il vaut mieux a) faire une requête qui retourne cet objet, et b) mettre à jour l'objet juste par myobject.firstname = "sdf";