Java 在保持休眠状态之前自动设置bean值(列)?
在Hibernate持久化实体之前,有没有一种优雅的方法来设置bean值(列)?基本上我有一个叫做“修改日期”的字段。它在一堆实体上。每当更新/修改这些实体中的一个时,我基本上希望自动设置该字段 我可以在服务层编写代码来设置每次手动保存/更新对象的日期 我还有一个Dao层。每个Dao都从包含save()方法的支持类扩展而来。我可以使用反射并在这个方法中设置值。我可以检查该类是否有一个名为“modicationDate”的字段,如果有,则将其设置为new Date() 还有比这更好的方法吗?还是使用我的泛型save()方法是最好的方法?这是一件我想变得强壮的事情,我再也不用担心它了。我很高兴知道,通过简单地创建一个“modificationDate”属性,从现在起,它将自动为我处理。使用save()方法似乎是最好的方法,但如果有更好的方法,我希望了解它。签出: 结帐:Java 在保持休眠状态之前自动设置bean值(列)?,java,hibernate,entity,Java,Hibernate,Entity,在Hibernate持久化实体之前,有没有一种优雅的方法来设置bean值(列)?基本上我有一个叫做“修改日期”的字段。它在一堆实体上。每当更新/修改这些实体中的一个时,我基本上希望自动设置该字段 我可以在服务层编写代码来设置每次手动保存/更新对象的日期 我还有一个Dao层。每个Dao都从包含save()方法的支持类扩展而来。我可以使用反射并在这个方法中设置值。我可以检查该类是否有一个名为“modicationDate”的字段,如果有,则将其设置为new Date() 还有比这更好的方法吗?还是使
嗯,这对我来说不是太有用,因为我不使用JPA(我没有指定),但它确实告诉我要查找“事件侦听器”,这足以让我找到我需要的;)谢谢嗯,这对我来说不是太有用,因为我不使用JPA(我没有指定),但它确实告诉我要查找“事件侦听器”,这足以让我找到我需要的;)谢谢
@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() );
}
}