sql – ON UPDATE CURRENT_TIMESTAMP和JPA
发布时间:2020-05-28 08:46:10 所属栏目:MsSql 来源:互联网
导读:我有一个带字段的实体 @Temporal(TemporalType.TIMESTAMP)@Column(name = edit_timestamp, columnDefinition=TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)private Date editTimestamp;
|
我有一个带字段的实体 @Temporal(TemporalType.TIMESTAMP) @Column(name = "edit_timestamp",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP") private Date editTimestamp; @Version @Column(name = "edit_count") private short editCount; private String text; 当我尝试使用Spring-Data-JPA更新时,我发现edit_count已经增加,但edit_timestamp仍然保持不变.如果我手动调用SQL UPDATE post SET TEXT='456' WHERE post_id=1; edit_timestamp已更新.如果我加 @PreUpdate
protected void onUpdate() {
editTimestamp = new Date();
}
它没有问题.我的问题是为什么w / o @PreUpdate没有更新edit_timestamp? 解决方法这是一个古老的问题,但我想如果其他人发现它有用,我会提出答案.我认为您需要更改列注释以包含updatable = false.这将导致edit_timestamp列不显示在更新sql中,因此JPA提供程序将不包含该字段的当前值,这是导致它覆盖默认值的原因. @Temporal(TemporalType.TIMESTAMP)
@Column(name = "edit_timestamp",updatable = false
columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
private Date editTimestamp; (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- redhat 5.4下安装MYSQL全过程
- 推数据库到heroku:如何使用heroku pg:push
- sql – select(Oracle)中的组编号
- SQL Server误区:AWE在64位SQL SERVER中必须开启
- Haskell中的`join`和`fmap join`是否等于(从类别理论的角度
- graph-databases – 用于原型设计的轻量级图形数据库
- mysql下普通用户备份数据库时无lock tables权限的解决方法
- 从表中获取TIME数据类型(MSSQL08)的SUM
- sql-server – SQL Server注入 – 26个字符中有多少损坏?
- sql-server – SSMS快捷方式在打开的查询窗口之间导航
