Spring Data Neo4j 4プロジェクトで - BeforeSaveEvent
クラスは推奨されていません。SpringデータNeo4 - BeforeSaveEvent非推奨
はまた、以前に私は私のエンティティのためのセットアップを作成/更新日時するために、次のコードを使用:
@EventListener
public void handleBeforeSaveEvent(BeforeSaveEvent event) {
Object entity = event.getEntity();
if (entity instanceof BaseEntity) {
BaseEntity baseEntity = (BaseEntity) entity;
if (baseEntity.getCreateDate() == null) {
baseEntity.setCreateDate(new Date());
} else {
baseEntity.setUpdateDate(new Date());
}
}
}
しかし今、このリスナーが呼び出されていません。
Neo4j 4ではこのロジックの代替品はありますか?私は本当に例を感謝します。おかげ
UPDATED
以下の設定が機能していますが、私のテストのいくつかは、理由は、以前に保存されたエンティティにNULL日付で失敗している...何かがまだ間違って..です
明確化が見つかりました後この問題の理由と、このバグ修正Modifications during a onPreSave() event do not persist to the database
@Configuration
@EnableExperimentalNeo4jRepositories(basePackages = "com.example")
@EnableTransactionManagement
public class Neo4jTestConfig {
@Bean
public Neo4jTransactionManager transactionManager() throws Exception {
return new Neo4jTransactionManager(sessionFactory());
}
@Bean
public SessionFactory sessionFactory() {
return new SessionFactory("com.example") {
@Override
public Session openSession() {
Session session = super.openSession();
session.register(new EventListenerAdapter() {
@Override
public void onPreSave(Event event) {
Object eventObject = event.getObject();
if(eventObject instanceof BaseEntity) {
BaseEntity baseEntity = (BaseEntity) eventObject;
if (baseEntity.getCreateDate() == null) {
baseEntity.setCreateDate(new Date());
} else {
baseEntity.setUpdateDate(new Date());
}
}
}
});
return session;
}
};
}
}
同じ問題に直面しています...私は[この質問]を見つけた(http://stackoverflow.com/questions/30604863/spring-data-neo4j-4-0-0-beforesaveevent-not-firing)ここにこれは私たちが現時点で行ってきたことです(GraphRepositoryの代わりにNeo4jTemplateを通して常にグラフエンティティを更新してください)。テンプレートを使用すると、before saveイベントが発生します。私はそれが理想的な解決策ではないことを知っていますが、あなたがより良い選択を見つけるまで、おそらくあなたを助けることができます。 – troig
@troig、ありがとう!私はSDNリポジトリとセッションのミックスを使用しています..これは、特にリポジトリの場合のオプションではないようです。 – alexanoid
はい、それは本当に良いオプションではないことを知っている... [sdn jira ](https://jira.spring.io/browse/DATAGRAPH-710)、多分あなたはそこを見ることができ、いくつかの返済を得ることができます。 – troig