![]() |
1
172
假设一个实体
更新时,用
如果
不,但你可以考虑让setter受到保护,因为你不应该这么叫它。 |
![]() |
2
23
尽管@pascal answer是完全有效的,但根据我的经验,我发现下面的代码有助于实现乐观锁定:
为什么?因为:
如果应用程序使用
只有
JPA用于将数据插入数据库,因为JPA供应商将强制执行
|
![]() |
3
8
每次在数据库中更新实体时,版本字段将增加一个。更新数据库中实体的每个操作都将附加
在检查操作中受影响的行时,jpa框架可以确保在加载和持久化实体之间没有并发修改,因为当查询的版本号在加载和持久化之间增加时,查询在数据库中找不到您的实体。 |
![]() |
4
2
用于确保一次仅更新一次的版本。jpa提供者将检查版本,如果预期的版本已经增加,那么其他人已经更新了实体,因此将引发异常。 因此,更新实体价值将更安全、更乐观。 如果值经常更改,则可以考虑不使用version字段。例如“一个有counter字段的实体,每次访问网页时它都会增加” |
![]() |
5
1
只是多加一点信息。
jpa在幕后为您管理版本,但是当您通过
佩德罗 |