2011-03-22 6 views
2

JPQL에 대한 자습서 및 샘플은 항상 SELECT 문 및 경우에 따라 간단한 UPDATE 문을 처리합니다. 조인으로 테이블을 업데이트해야합니다. 카운터JPQL을 사용한 UPDATE 및 JOIN

APPLET
= ID
-

KEY
= ID
:

내 ENV를 단순화! key_id (1-1)

DEVICE
= id
! applet_id (1-1)
! USER_ID (1-N)

USER
ID =
- 장치 고유 키 집합을 갖는 고유 애플릿을 갖는다

로그인. 그러나 사용자는 여러 장치를 소유 할 수 있습니다.

사용자 로그인 "x"에 첨부 된 모든 KEY의 카운터를 재설정해야합니다.

나는 UPDATE 및 JOIN 구문을 사용하여 성공하지 못했습니다. 어떤 단서?

감사합니다.

답변

7

시도한 내용과 오류는 무엇입니까? 당신의 객체 모델은 무엇입니까? 아마도 뭔가 같은

,

Update Key k set k.counter = 0 where exists (Select u from User u join u.devices d where u.login = "x" and d.applet.key = k) 

참조, http://en.wikibooks.org/wiki/Java_Persistence/JPQL_BNF#Update

은 또한 객체를 선택하고 메모리에 카운터를 재설정하고 변경 사항을 적용 할 수있다.

+0

나는 이것을 시도 할 것이다, 고마워. 좀 더 세련된 JPQL 솔루션을 기다리는 NativeQuery를 사용하고있었습니다. – Zofren