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

时间:2015-09-13 21:35:10

标签: spring neo4j spring-data-neo4j-4

我正在使用Spring Data Neo4j 4.0.0.RELEASE,并希望利用内置的数据操作事件来动态插入一些审计信息(例如时间戳)。 The documentation似乎表明只有在我直接使用Neo4jTemplate时才能使用此功能。

GraphRepository抽象是否有类似的钩子可用?也就是说,是否有一种开箱即用的方式可以连接到图形存储库操作(一个Spring DataJPA?)我已经编写了一些测试并且可以确认记录的事件在我和#39时不会触发;我只是使用GraphRepository

1 个答案:

答案 0 :(得分:2)

AbstractGraphRepository来自3.x代码库,所以这里没有直接相关。

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

SDN开发团队目前正在考虑使用事件处理程序来触发可能在保存树中任意深度保留的对象的最佳方法。

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