如何在hibernate中自动生成实体bean中的时间戳?
@Generator
是否有任何东西直接放入其中:
@GeneratedValue(vale=new Date().getTime())
答案 0 :(得分:1)
您不能在注释中加入一些代码,只需提供值即可。
要在每次更改实体时自动更新时间戳,您可以在时间戳字段上使用@Version:
@Version
private Timestamp lastUpdate;
答案 1 :(得分:1)
您可以实现全局EntityInterceptor:
public class GlobalEntityInterceptor
extends EmptyInterceptor {
@Override
public boolean onSave(java.lang.Object entity, java.io.Serializable p2, java.lang.Object[] p3, java.lang.String[] p4, org.hibernate.type.Type[] p5) {
//first save - you can modify your entity fields
}
@Override
public boolean onFlushDirty(java.lang.Object entity, java.io.Serializable p2, java.lang.Object[] p3, java.lang.Object[] p4, java.lang.String[] p5,
org.hibernate.type.Type[] p6) {
//modification - you can modify your entity fields
}
有一些注释驱动的解决方案,例如 @PrePersist ,但它们仅适用于少数environments。
答案 2 :(得分:0)
您可以使用hibernates拦截器来填充具有某些数据的实体,即。创作日期等。
请阅读此处了解有关interceptors
的更多信息