这与Hibernate本身无关。上面指定的注释告诉Hibernate这些值将由数据库生成,因此在插入/更新实体后需要重新加载这些值。
如果这是您要使用的方式,则需要配置数据库(例如,通过创建触发器)以根据需要填充
date_created/
last_modified列。
另一种方法是不将这些字段标记为已生成,而是在Java代码中更新它们。如果您正在使用JPA(通过Hibernate
EntityManager),则通过@PrePersist /
@PreUpdate回调方法执行此操作很简单:
@PreUpdate@PrePersistpublic void updateTimeStamps() { lastModified = new Date(); if (dateCreated==null) { dateCreated = new Date(); }}


