【发布时间】:2018-07-06 21:23:43
【问题描述】:
我了解什么是乐观锁定以及“它是如何工作的”,但我不知道如何在 Java EE 上实现它。
我在 JPA 中有一个实体,我又添加了一个 version 列,并用 @Version 对其进行了注释。但是要进行乐观的锁定管理,我只需要 @Version 注释吗?
这是我的 Java 类:
@Entity
public class MyClass implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
//other variables
@Version
@Column(name = "version")
private int version;
//other code
}
在我的项目中,我使用Stateless session bean来访问Entity类并持久化更多操作,所以我默认使用@TransactionManagement(TransactionManagementType.CONTAINER)来处理我的事务。
我的疑问是:
使用@TransactionManagement(TransactionManagementType.CONTAINER)(独立于什么是@TransactionAttribute(必需、强制等))并且只在MyClass.java 中注释version 变量我获得了乐观锁定管理?
【问题讨论】:
标签: jpa jakarta-ee ejb