春と休止状態を使用しています。Hibernate 4.2Ejb3Configuration
はクラスを非推奨として宣言しており、リスナーをセットアップできるメソッドgetEventListenersがありません。このクラスは以前は を取得していEntityManagerFactory
ました。
データベースのオーディション(更新、挿入、削除イベントのロギング)に使用しています。試聴構成で EntityManagerFactory を取得するにはどうすればよいですか?
public class HibernateExtendedPersistenceProvider extends HibernatePersistence {
private PostInsertEventListener[] postInsertEventListeners;
private PostUpdateEventListener[] postUpdateEventListeners;
private PostDeleteEventListener[] postDeleteEventListeners;
@SuppressWarnings("rawtypes")
@Override
public EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map properties) {
Ejb3Configuration cfg = new Ejb3Configuration();
setupConfiguration(cfg);
Ejb3Configuration configured = cfg.configure( persistenceUnitName, properties );
return configured != null ? configured.buildEntityManagerFactory() : null;
}
@SuppressWarnings("rawtypes")
@Override
public EntityManagerFactory createContainerEntityManagerFactory(PersistenceUnitInfo info, Map properties) {
Ejb3Configuration cfg = new Ejb3Configuration();
setupConfiguration(cfg);
Ejb3Configuration configured = cfg.configure( info, properties );
return configured != null ? configured.buildEntityManagerFactory() : null;
}
private void setupConfiguration(Ejb3Configuration cfg) {
// 4.2: Ejb3Configuration deprecated and has no method getEventListeners
cfg.getEventListeners().setPostInsertEventListeners(postInsertEventListeners);
cfg.getEventListeners().setPostDeleteEventListeners(postDeleteEventListeners);
cfg.getEventListeners().setPostUpdateEventListeners(postUpdateEventListeners);
}
public void setPostInsertEventListeners(PostInsertEventListener[] postInsertEventListeners) {
this.postInsertEventListeners = postInsertEventListeners;
}
public void setPostUpdateEventListeners(PostUpdateEventListener[] postUpdateEventListeners) {
this.postUpdateEventListeners = postUpdateEventListeners;
}
public void setPostDeleteEventListeners(PostDeleteEventListener[] postDeleteEventListeners) {
this.postDeleteEventListeners = postDeleteEventListeners;
}
}