【发布时间】:2013-08-15 16:51:28
【问题描述】:
对于我们的应用程序,我们需要使用休眠实现触发器。我们可以找到的一个最佳解决方案是使用 Annotation 的实体侦听器,因为我们需要侦听特定的实体更改。
除了使用命名查询删除之外,一切都很好,它不会给出任何事件。
代码实现 ** Entity** - 这里我们添加了监听器
@Entity
@EventListeners(EmployeeEventListener.class)
public class Employee {
@Id
private String uid;
@Basic
private Calendar lastUpdated;
实体监听器 -
监听器占用被修改的实体,执行预期的操作
public class EmployeeEventListener {
@PrePersist
public void prePersist(Object object) {
Employee employee = (Employee)object;
employee.setUID(UIDGenerator.newUUI());
employee.setLastUpdated(Calendar.getInstance());
}
@PostUpdate
public void postUpdate(Object object) {
Employee employee = (Employee)object;
employee.setLastUpdated(Calendar.getInstance());
}
当我在实体管理器上使用 save 或 saveorupdate 时,@PrePersist 和 @PostUpdate 运行良好。但是在执行删除命名查询时,我没有收到 @PreRemove 和 @PostRemove 的事件
我也想获得一个删除事件。
【问题讨论】:
标签: hibernate entitymanager entitylisteners