在持久化Hibernate之前自动设置bean值(列)?
在Hibernate持久化实体之前,是否有一种优雅的方法来设置bean值(列)? 基本上我有一个名为“modification_date”的字段。 它出现在一堆实体上。 每当更新/修改其中一个实体时,我基本上都喜欢自动设置该字段。
我可以在服务层编写代码,每次手动保存/更新对象时设置日期…
我也有一个Dao图层。 每个Dao都从包含save()方法的支持类扩展而来。 我可以使用reflection并在此方法中设置值。 我可以检查该类是否有一个名为“modicationDate”的字段,如果是,则将其设置为新的Date()。
有比这更好的方法吗? 或者使用我的genericssave()方法是最好的方法? 这是我想要强大的东西,而不必再担心它。 我会很高兴知道通过简单地制作一个“modificationDate”属性,从这一点开始我将自动处理这个问题。 使用save()方法似乎是最好的地方,但如果有更好的方法,我想知道它。
结帐事件监听器 :
@Entity @EntityListeners(class=LastUpdateListener.class) public class Cat { @Id private Integer id; private String name; private Calendar dateOfBirth; @Transient private int age; private Date lastUpdate; @PostLoad public void calculateAge() { ... } } public class LastUpdateListener { /** * automatic property set before any database persistence */ @PreUpdate @PrePersist public void setLastUpdate(Cat o) { o.setLastUpdate( new Date() ); } }
- 带有JPA + Hibernate(或类似)和Apache Derby嵌入式DB的Java独立应用程序
- 如何在Hibernate中复制“SHOW TABLES”?
- Hibernateexception_ $$ _ javassist_0无法强制转换为javassist.util.proxy.Proxy
- java.lang.NumberFormatException:用于JSP页面中的输入字符串
- JDK 9的Hibernate 5问题
- HQL错误:with-clause引用了两个不同的from子句元素
- 关注hibernate查询的问题
- @MappedSuperclass不是@entity?
- java.lang.ClassCastException:[Ljava.lang.Object; 无法强制转换为entity.UserEntity