2011-03-22 49 views
2

有關JPQL的教程和示例總是處理SELECT語句,有時還處理簡單的UPDATE語句。我需要用連接來更新表格。更新和加入JPQL

我簡化了我的ENV:

KEY
= ID
- 反

APPLET
= ID
! key_id(1-1)

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

USER
= ID
- 登錄

的設備都有一個唯一的小應用程序,它具有一個唯一的密鑰集。但用戶可以擁有多個設備。

我需要重置附加到USER登錄名「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

我會試試這個,謝謝。我正在使用NativeQuery等待更加優雅的JPQL解決方案。 – Zofren 2011-03-23 22:19:51