neo4j - Neo4j 映射异常
问题描述
MappingException
执行以下代码时出现错误:
Configuration configuration = new Configuration.Builder()
.uri("file:///var/lib/neo4j/data/databases/graph.db")
.credentials("neo4j","noor")
.build();
SessionFactory sessionFactory = new SessionFactory(configuration,"OntologyDescription","info.testNeo");
Session session = sessionFactory.openSession();
ResourceDescription classDescription = OntologyUtils.getClassDescription(classIRI,
dogont);
session.save(classDescription);
sessionFactory.close();
完整跟踪:
Exception in thread "main" org.neo4j.ogm.exception.core.MappingException: Field with primary id is null for entity state
at org.neo4j.ogm.context.MappingContext.nativeId(MappingContext.java:514)
at org.neo4j.ogm.context.EntityGraphMapper.newNodeBuilder(EntityGraphMapper.java:318)
at org.neo4j.ogm.context.EntityGraphMapper.mapEntity(EntityGraphMapper.java:257)
at org.neo4j.ogm.context.EntityGraphMapper.mapRelatedEntity(EntityGraphMapper.java:797)
at org.neo4j.ogm.context.EntityGraphMapper.link(EntityGraphMapper.java:501)
at org.neo4j.ogm.context.EntityGraphMapper.mapEntityReferences(EntityGraphMapper.java:414)
at org.neo4j.ogm.context.EntityGraphMapper.mapEntity(EntityGraphMapper.java:265)
at org.neo4j.ogm.context.EntityGraphMapper.map(EntityGraphMapper.java:149)
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.delegates.SaveDelegate.save(SaveDelegate.java:51)
at org.neo4j.ogm.session.Neo4jSession.save(Neo4jSession.java:468)
at Examples.TestNeo4j.main(TestNeo4j.java:41)
classDescription
只有从该OntologyUtils.getClassDescription
方法中获取时,我才会收到错误。但是,如果我实例化一个ResourceDescription
新的,我不会得到错误。简而言之,OntologyUtils.getClassDescription
调用其他几个方法将信息添加到新实例。
解决方案
这个问题是因为包名包含大写字母。正如这个GitHub issue中提到的,包名应该完全小写
推荐阅读
- c - 在 glib 中运行 cat /proc/cpuinfo
- python - 如何在 PyQt5 的 MainWindow 中有效地导入用户创建的 Widget?
- java - InputStream 和 OutputStream - 如何区分歧义
- elasticsearch - ElasticSearch 中的 Netty 有什么用?
- intellij-idea - 如何在 IntelliJ 的 sonarlint 插件中禁用待办事项警告?
- c# - Automapper 展平公共嵌套关系
- javascript - 使用选择菜单统一代码
- python-2.7 - Python按唯一ID转置行
- amazon-web-services - 所有 IAM 服务上的 AWS iam:ListRolePolicies 权限错误
- python - 数据科学:定量和定性变量之间的相关性(在 python 中)