Neo4J OGM MappingException:具有主 ID 的字段对于 EMF class 为空

Neo4J OGM MappingException: Field with primary id is null for EMF class

我构建了一个 EMF 模型,该模型应指示允许存储在 Neo4J 数据库实例中的实体类型。

然后我想用 Neo4J OGM(版本 3.2.28)注释 EMF 模型 类 以尽可能轻松地保持与 Neo4J 的连接。

看起来像这样:

BaseElementToolNameArtefact 是抽象的。 BaseElementImpl中的字段uuid被注释为org.neo4j.ogm.annotation.Id

现在,当我尝试通过 Session#save() 存储 ConcreteArtefact 的实例时,我收到以下错误消息:

org.neo4j.ogm.exception.core.MappingException: Field with primary id is null for entity foo.bar.ConcreteArtefact@64d43929 (uuid: 7745782f-2c61-4450-985a-8cf2986afa49, projectName: ) at org.neo4j.ogm.context.MappingContext.nativeId(MappingContext.java:556) at org.neo4j.ogm.cypher.compiler.CypherContext.getIdentity(CypherContext.java:66) at org.neo4j.ogm.cypher.compiler.CypherContext.visitedNode(CypherContext.java:90) at org.neo4j.ogm.context.EntityGraphMapper.mapEntity(EntityGraphMapper.java:267) at org.neo4j.ogm.context.EntityGraphMapper.map(EntityGraphMapper.java:170) at org.neo4j.ogm.session.delegates.SaveDelegate.lambda$save(SaveDelegate.java:89) at java.util.Collections$SingletonList.forEach(Collections.java:4822) at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate.java:89) at org.neo4j.ogm.session.Neo4jSession.save(Neo4jSession.java:479)

虽然uuid字段设置的很清楚

其他解决方案

我的包名都是.

移动 NodeEntity annotations to the interfaces instead of the implementing classes 没有帮助。

有问题的类有一个

此行为是 Neo4J OGM 本身的问题。一位开发者在 this thread 中回答说该问题将在未来的版本中修复(从 3.2.29 开始)