使用JPQL更新和加入

Zof*_*ren 2 jpa join jpql

关于JPQL的教程和示例总是处理SELECT语句,有时还处理简单的UPDATE语句.我需要用连接更新表.

我简化了我的环境:

KEY
= id
- 计数器

APPLET
= id
!key_id(1-1)

DEVICE
= id
!applet_id(1-1)
!user_id(1-n)

USER
= id
- 登录

设备具有唯一的applet,该applet具有唯一的键集.但是用户可以拥有多个设备.

我需要重置连接到USER登录名"x"的每个KEY的计数器.

我尝试了UPDATE和JOIN的一些语法,没有成功.任何线索?

谢谢.

Jam*_*mes 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)
Run Code Online (Sandbox Code Playgroud)

请参阅 http://en.wikibooks.org/wiki/Java_Persistence/JPQL_BNF#Update

您还可以选择对象并在内存中重置计数器并提交更改.