Spring Data Neo4j repository的save方法返回null代替UUId属性

时间:2016-09-01 17:46:20

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

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

Entity createdEntity = repository.save(entity);

然后createdEntity.uuid属性将始终为null;但是我看到db中设置了uuid属性。

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

Entity foundEntity = repository.findOne(id);

该属性将再次为null

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

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

1 个答案:

答案 0 :(得分:3)

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

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