我是JPA的新手。我想弄清楚如何使用JPA实体生命周期事件作为数据库触发器的替代品。例如(Postgresql),除了在“更新前”数据库触发器(Postgresql)之外,它总是具有旧记录和新记录,其中包含更新前后的值。JPA实体生命周期事件vs数据库触发器
我无法找到有关JPA的文档。 Javadoc文档在PreUpdate注释中没有多说。
谢谢!
我是JPA的新手。我想弄清楚如何使用JPA实体生命周期事件作为数据库触发器的替代品。例如(Postgresql),除了在“更新前”数据库触发器(Postgresql)之外,它总是具有旧记录和新记录,其中包含更新前后的值。JPA实体生命周期事件vs数据库触发器
我无法找到有关JPA的文档。 Javadoc文档在PreUpdate注释中没有多说。
谢谢!
JPA只是和研究生命周期,我认为我们需要具体到
实现的规范。 EJB Entity Beans/Hibernate Entity Beans等,它们都有自己的
生命周期模型。
生命周期事件是在JPA中定义的。 他们是:PerPersist,PostPersist,PreRemove,PostRemove,PreUpdate,PostUpdate和PostLoad。 您可以使用适当的注释(上述之一)在实体类中注释方法。 方法签名为
void someMethodName()
它可以有任何访问修饰符。 对于在回调中可以执行的操作有许多限制,例如在实体管理器上调用方法。
特别在PreUpdate上:PreUpdate保证在更新db之前的某个时刻被调用,但是在什么时候什么都没有说。