Java JPA 托管实体的处理程序

Java handler for JPA managed entities

由于我是这个话题的新手,我的问题的标题可能是完全错误的-如果需要请纠正我。

进入正题:

我最近做了一个简单的 ORM 项目,它由 3 个实体 classes (Person, Account, PhoneNumber) 和一些关系组成。

现在,我刚刚创建了一个新的 class ManagedEntity

public abstract class ManagedEntity {
    protected int id;
    private Date lastModifDate;
    private String lastModifUser;
}

我有:

人扩展 ManagedEntity

帐户扩展 ManagedEntity

PhoneNumber 扩展了 ManagedEntity

到目前为止,我已经使用 2 个接口访问了我的数据库

  1. 个人服务(使用 EntityManager 添加、删除、修改实体)

  2. 查询接口(使用条件查询得到我们要找的实体)

我现在想要做的是添加一个处理程序,它会在每次持久化实体时自行填充 ManagedEntity 字段。

谁能告诉我如何制作事件处理程序?我的意思是我应该在什么地方和什么代码 "detect" 每个给定类型的事件?

我认为您正在寻找的是与映射超类关联的实体侦听器的回调方法。

看看:

http://www.objectdb.com/java/jpa/persistence/event

将您的代码放在 @PrePersist 的方法中。

示例教程 here 具有非常相似的用例。