SDN4 - 与 GraphRepository 兼容的实体生命周期事件处理程序

SDN4 - Entity lifecycle event handlers compatible with GraphRepository

我正在使用 Spring Data Neo4j 4.0。0.RELEASE 并希望利用内置的数据操作事件来动态插入一些审计信息(例如时间戳)。 The documentation 似乎暗示这只有在我直接使用 Neo4jTemplate.

时才可用

是否有任何类似的挂钩可用于 GraphRepository 抽象?也就是说,是否有一种开箱即用的方式让我连接到图形存储库操作(la Spring DataJPA?)我已经编写了一些测试并且可以确认记录的事件不会在我仅使用 GraphRepository.

AbstractGraphRepository 来自 3.x 代码库,因此与此处不直接相关。

如前所述,SDN 4 尚未提供对 Spring 的 RepositoryEventListener 接口的自动支持。由于底层保存机制的性质,在 SDN 4.0 中正确实现事件侦听器很复杂,它会保留一整棵 "dirty" 对象树,而不仅仅是单个顶级实体。如果您要拦截的对象不是正在保存的顶级实体,则不会触发它的事件侦听器。

SDN 开发团队目前正在考虑启用事件处理程序的最佳方法,以触发可能在保存树中的任何深度持久保存的对象。

同时,simonl 建议的解决方案应该有效。