我对使用JPA稍微有些新东西 - 我会把它放在那里。我越来越熟悉它,但是现在我的知识存在很大的漏洞。JPA将逻辑添加到删除实体
我正在使用JPA的应用程序,并删除使用EntityManager.remove(对象实体)函数的实体。然而,应用程序也链接到第三方应用程序,并且我想添加从持久层中删除特定类型的实体时执行的逻辑。
我的问题是这样的。有没有办法在Entity类级别上向EntityManager.remove(Object entity)函数添加逻辑,这样每次删除该类型的实体时都会执行额外的逻辑?
非常感谢。
我正在寻找那些,看起来像我在找什么。看起来PostRemove被调用更接近提交点。虽然我看到它不能保证数据库实体实际上被删除,但它至少不容易受到事务回滚的影响。那是对的吗? – MikeTheReader 2010-08-24 18:07:43
到目前为止,我还记得,@PreRemove将总是在tx内被调用,但@PostRemove可以在tx内部或外部调用,具体取决于何时发生刷新,这将至少在提交之前发生,但也可以在tx内发生。我怀疑你应该在PreRemove中做这项工作,并确保你从tx的角度来看你所做的事情是否可行。 – ewernli 2010-08-24 18:35:39