JPAを使用してJ2EE 5で作業していますが、実際のソリューションがありますが、構造を整理することを検討しています。JPA EntityListenersでインターフェイスの存在を確認する方法
私は永続化しているJPAオブジェクトの一部でEntityListenersを使用していますが、リスナーはかなり一般的ですが、インターフェイスを実装するBeanに依存しています。
EntityListenerとInterfaceを結びつける方法を決定できないため、正しい方向に進み、さらにはコンパイル時にエラーが発生するという例外が発生します。私は新しいクラスが作成され、それがCreateByListenerを使用していますが、CreatorInterfaceを実装していないされている場合を除き、それがしたい
@Entity
@EntityListener({CreateByListener.class})
public class Note implements CreatorInterface{
private String message;....
private String creator;
....
}
public interface CreatorInterface{
public void setCreator(String creator);
}
public class CreateByListener {
@PrePersist
public void dataPersist(CreatorInterface data){
SUser user = LoginModule.getUser();
data.setCreator(user.getName());
}
}
この機能正確な方法。 JPAエンジンの深いところからクラスキャスト例外がスローされ、この現象を覚えてしまった場合にのみ、何がうまくいかなかったかを把握することができます。
私は、リスナーが起動する前にインターフェイスの存在やテストを行う方法を考え出すことができませんでした。
すべてのアイデアをいただければ幸いです。