Warm tip: This article is reproduced from serverfault.com, please click

java-Neo4J OGM 映射异常:具有主 ID 的字段对于 EMF 类为空

(java - Neo4J OGM MappingException: Field with primary id is null for EMF class)

发布于 2022-01-18 11:59:18

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

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

它看起来像这样:

电动势模型示例

BaseElement并且是抽象的。中的字段用 注释。ToolNameArtefactuuidBaseElementImplorg.neo4j.ogm.annotation.Id

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

org.neo4j.ogm.exception.core.MappingException: 对于实体 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) atorg.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$1(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

有问题的类有一个无参数构造函数

Questioner
Der_Reparator
Viewed
0
Der_Reparator 2022-02-09 20:45:11

这种行为是Neo4J OGM本身的问题。开发人员在此线程中回答说,该问题将在将来的版本中修复(从3.2.29)