私はエンティティを持っています:
@Entity
@EntityListeners(MyEntityListener.class)
class MyEntity{ ... }
そしてリスナー:
class MyEntityListener{
@PrePersist
@PreUpdate
public void doSomething(Object entity){ ... }
}
このエンティティ (1.4.1) と EclipseLink には、Spring Data で生成された DAO を使用しています。コードの動作は次のとおりです。
MyEntity entity = new Entity();
entity = dao.save(entity); // the doSomething() is called here
// change something it the entity and save it again
dao.save(entity); // the doSomething() is NOT called here, checked with breakpoint
この問題は2009 年にすでに誰かによって説明されていますが、彼らは解決策を思いつきませんでした。誰かがそれを解決する方法を考えているのだろうか?