我有一个基本实体类
其中一个字段(时间戳)具有@ 版本属性,因此Jpa会自动增加该值。
但是,有时时间戳值没有得到更新,编辑的日期小于创建的日期,但理论上这绝不会发生。
我没有以编程方式设置已编辑的值。
这是我的实体类:
public class BaseEntity implements Serializable {
@Column(name = "CREATED")
private Timestamp created;
@Column(name = "EDITED")
@Version
private Timestamp edited;
// other fields, getters and setters
}
已阅读过很多关于此@version注释的文章,但我不明白为什么这个值不会更新,这背后的原因是什么。
如果有人帮助我,那就太棒了
由于
答案 0 :(得分:2)
以下是一些基本准则:
javax.persistence.Version
。obj = entityManager.merge(obj);
。要进一步调试,请编辑persitence.xml
并在属性中添加以下行:
<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.logging.parameters" value="true"/>
<property name="eclipselink.logging.sql.level" value="FINE"/>
这将启用精细记录并生成大量输出。您将能够看到更新查询以及确切发生的情况。