Spring Data Neo4j 存储库的保存方法 returns null 代替 UUId 属性

Spring Data Neo4j repository's save method returns null in place of UUId property

我使用 GraphAware Neo4j UUID 插件。如果我使用这个创建实体:

Entity createdEntity = repository.save(entity);

那么 createdEntity.uuid 属性 将永远是 null;但我看到数据库中设置了 uuid 属性。

此外,如果我将使用以下方法重新加载实体:

Entity foundEntity = repository.findOne(id);

属性 将再次 null

似乎实体被 Spring 缓存了,因为如果我重新启动我的 Spring 应用程序,我将能够使用 repository.findOne(id)uuid 一起加载实体].

我需要在创建实体后立即了解 uuid。我怎样才能做到这一点?

实体属性缓存在当前会话中(相信您使用的是 SDN 4。2.x?),因此您需要在新会话中重新加载。对于在事件处理程序中所做的修改尤其如此,在这些修改中所做的更改在执行单独的调用之前不会反映出来。

有关详细信息,请参阅 http://docs.spring.io/spring-data/neo4j/docs/4.2.x/reference/html/#_design_consideration_session_caching