持久化时,JPA将TIMESTAMP字段设置为CURRENT_TIMESTAMP

7 timestamp jpa

我在表上有一个TIMESTAMP列,在最初插入记录时设置为null.我想将值更新为当前时间.我生成的实体有一个set字段的set方法:

setCloseDate(Timestamp closeDate)
Run Code Online (Sandbox Code Playgroud)

但是我不想从java代码生成/指定时间戳.有没有办法在持久化实体时注释属性以指示在数据库级别使用当前时间?

如果没有,那么执行这样的更新会有什么好的策略?

在我想要运行的查询的下面是这样的:

update CASE_FILE set CLOSE_DATE=CURRENT_TIMESTAMP where ID=1
Run Code Online (Sandbox Code Playgroud)

我刚刚开始使用JPA ......所以可能会遗漏一些相当明显的东西.谢谢!

小智 8

在您的jpa实体类中,在当前时间戳列中使用以下代码

@Column(name = "timestamp", nullable = false, updatable = false, insertable = false, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
public Timestamp timestamp;
Run Code Online (Sandbox Code Playgroud)