【问题标题】:Firing JPA listeners on collection field change在集合字段更改时触发 JPA 侦听器
【发布时间】:2012-02-29 15:45:10
【问题描述】:

一旦我的实体发生变化,我正在使用 EntityListeners (@PreUpdate) 执行某些操作。 但是我注意到实体内部集合的更改不会触发 JPA 实体侦听器,这是有道理的,因为包含实体的表没有更改,但多对多表却发生了变化。

有没有办法让实体监听器在集合发生变化时触发?

【问题讨论】:

  • 为什么不将 PreUpdate 属性放在子实体而不是父实体中?
  • @perissf 正在更新的表是多对多表,在我的代码中未映射为实体。
  • 嗨,我注意到使用 JPA/Hibernate 的行为相同。这对我来说是个问题,因为如果例如我向用户添加角色(多对多集合),则不会发生由 EntityListener 触发的审计。您找到解决此问题的方法了吗?

标签: java jpa persistence listener


【解决方案1】:

为版本化实体触发监听器(请参阅javax.persistence.Version)。通过这个答案找到:https://stackoverflow.com/a/17073342/12039

【讨论】:

    【解决方案2】:

    我希望事件被调用。您使用的是哪个 JPA 提供程序?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 2020-07-30
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 2012-04-01
      相关资源
      最近更新 更多