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

, 나는 다음과 같은 오류를 얻고있다 위의 쿼리를 실행최대 절전 모드 쿼리 언어 업데이트 오류

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

그러나, 이름의 디팍와 행의 많은이없는 한, 이것은 잘못된 방법입니다. 하나의 객체 만 업데이트하는 경우 a)이 객체를 반환하는 쿼리를 수행하고 b) 객체를 바로 업데이트하는 것이 더 좋습니다.

관련 문제