将 LocalDateTime 设置为使用休眠 4.3.10 自动生成
Posted
技术标签:
【中文标题】将 LocalDateTime 设置为使用休眠 4.3.10 自动生成【英文标题】:Set LocalDateTime to autogenerate with hibernate 4.3.10 【发布时间】:2015-08-22 14:34:13 【问题描述】:目前我有一个基本实体如下:
@MappedSuperclass
public abstract class BaseEntity
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private Long id;
private boolean deleted;
@Convert(converter = LocalDateTimePersistenceConverter.class)
private LocalDateTime createdAt;
@Convert(converter = LocalDateTimePersistenceConverter.class)
private LocalDateTime updatedAt;
是否可以在 LocalDateTime
上添加注释以使数据库默认为当前日期和时间?
附言我不允许使用休眠 5。
【问题讨论】:
【参考方案1】:@LaurentiuL 是正确的。 但我认为下面也应该有效
@Convert(converter = LocalDateTimePersistenceConverter.class)
private LocalDateTime createdAt = new LocalDateTime ();
@Convert(converter = LocalDateTimePersistenceConverter.class)
private LocalDateTime updatedAt= new LocalDateTime ();
这个问题的答案也应该对你有所帮助:Creation timestamp and last update timestamp with Hibernate and mysql
【讨论】:
@Nomad 哦.. 是的,没错.. 在这种情况下,上述问题的答案应该有效..【参考方案2】:您可以使用@PrePersist 注解。
在实体管理器持久化操作实际之前执行 执行或级联。此调用与持久化同步 操作。
例子:
@PrePersist
protected void onCreate()
createdAt = new LocalDateTime();
updatedAt = new LocalDateTime();
如果您认为它合适,您还可以使用 @PreUpdate 注释。
阅读更多events that occur inside hibernate's persistence mechanism
【讨论】:
以上是关于将 LocalDateTime 设置为使用休眠 4.3.10 自动生成的主要内容,如果未能解决你的问题,请参考以下文章
如何将 linq 中的参数类型设置为 char(*) 类型的休眠查询?
Hibernate LocalDateTime:Postgresql 模式生成在外部 Tomcat 中创建类型为“bytea”的列