- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在关注 Neo4j OGM 指南 - http://neo4j.com/docs/ogm/java/stable/
对于关系实体,我们需要有一个起始节点和一个结束节点。我对示例进行了一些修改(以使其更简单)-
@NodeEntity
public class Student extends Entity {
private String name;
@Relationship(type= "ENROLLED")
private Enrollment enrollment = new Enrollment();
public String getName() {
return name;
}
public Enrollment getEnrollment() {
return enrollment;
}
public void setEnrollment(Enrollment enrollment) {
this.enrollment = enrollment;
}
public Student() {
}
public Student(String name) {
this.name = name;
}
}
@NodeEntity
public class Course extends Entity {
private String name;
public String getName() {
return name;
}
@Relationship(type= "ENROLLED", direction= Relationship.INCOMING)
private Enrollment enrollment = new Enrollment();
public Enrollment getEnrollment() {
return enrollment;
}
public void setEnrollment(Enrollment enrollment) {
this.enrollment = enrollment;
}
public Course() {
}
public Course(String name) {
this.name = name;
}
}
@RelationshipEntity(type = "ENROLLED")
public class Enrollment extends Entity {
@StartNode
private Student student;
@EndNode
private Course course;
private Date enrolledDate;
public Student getStudent() {
return student;
}
public Course getCourse() {
return course;
}
public Date getEnrolledDate() {
return enrolledDate;
}
public Enrollment() {
}
public Enrollment(Student student, Course course, Date enrolledDate) {
this.student = student;
this.course = course;
this.enrolledDate = enrolledDate;
}
}
现在,当我尝试将其保存在 Neo4j 中时,它工作正常。但是在我的场景中,StartNode 和 EndNode 对象的类型是相同的 -
@NodeEntity
public class MyObject extends Entity {
private String name;
@Relationship(type="CONNECTION")
private MyConnection startConnection = new MyConnection();
@Relationship(type="CONNECTION", direction= Relationship.INCOMING)
private MyConnection endConnection = new MyConnection();
public String getName() {
return name;
}
public MyConnection getStartConnection() {
return startConnection;
}
public void setStartConnection(MyConnection myConnection) {
this.startConnection = myConnection;
}
public MyConnection getEndConnection() {
return endConnection;
}
public void setEndConnection(MyConnection endConnection) {
this.endConnection = endConnection;
}
public MyObject() {
super();
}
public MyObject(String name) {
super();
this.name = name;
}
}
@RelationshipEntity(type="CONNECTION")
public class MyConnection extends Entity {
@StartNode
private MyObject start;
@EndNode
private MyObject end;
private String name;
public String getName() {
return name;
}
public MyConnection() {
super();
}
public MyConnection(MyObject start, MyObject end, String name) {
super();
this.start = start;
this.end = end;
this.name = name;
}
}
当我尝试使用 - 保存这些时
public class Main {
public static void main(String[] args) {
Session session = Neo4jSessionFactory.getInstance().getNeo4jSession();
Student s = new Student("manoj");
Course c = new Course("physics");
Enrollment e = new Enrollment(s, c, new Date());
s.setEnrollment(e);
c.setEnrollment(e);
MyObject startObj = new MyObject("Start Object");
MyObject endObj = new MyObject("End Object");
MyConnection conn = new MyConnection(startObj, endObj, "Connection");
startObj.setStartConnection(conn);
endObj.setEndConnection(conn);
try(Transaction tx = session.beginTransaction()) {
session.save(s);
session.save(c);
session.save(e);
session.save(startObj);
session.save(endObj);
session.save(conn);
tx.commit();
}
}
}
学生、类(class)和注册对象已保存,但两个 MyObject 和 MyConnection 对象未保存,并且出现以下异常 -
Exception in thread "main" java.lang.NullPointerException
at org.neo4j.ogm.metadata.MetaData.classInfo(MetaData.java:76)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapRelationshipEntity(EntityGraphMapper.java:389)
at org.neo4j.ogm.mapper.EntityGraphMapper.link(EntityGraphMapper.java:319)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapEntityReferences(EntityGraphMapper.java:262)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapEntity(EntityGraphMapper.java:154)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapRelatedEntity(EntityGraphMapper.java:528)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapRelationshipEntity(EntityGraphMapper.java:420)
at org.neo4j.ogm.mapper.EntityGraphMapper.link(EntityGraphMapper.java:319)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapEntityReferences(EntityGraphMapper.java:262)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapEntity(EntityGraphMapper.java:154)
at org.neo4j.ogm.mapper.EntityGraphMapper.map(EntityGraphMapper.java:87)
at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate.java:65)
at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate.java:41)
at org.neo4j.ogm.session.Neo4jSession.save(Neo4jSession.java:370)
at neo4j.ogm.ex.Main.main(Main.java:37)
你能帮我解决这个问题吗 -1)StartNode和EndNode对象是否必须是不同类型?2)我的代码有问题还是Neo4j OGM的缺点?
提前致谢,
马诺杰。
尝试 Luanne 的建议后更新 -
谢谢卢安。我尝试了你的建议,但我必须以不同的方式指定 URL。我用了 - http://m2.neo4j.org/content/repositories/snapshots因为默认情况下它使用 https,并且我遇到了一些安全异常,并且没有下载此依赖项。
无论如何,使用 1.1.1-SNAPSHOT 版本,我仍然收到以下错误 -
Exception in thread "main" java.lang.NullPointerException
at org.neo4j.ogm.metadata.MetaData.classInfo(MetaData.java:80)
at org.neo4j.ogm.mapper.EntityGraphMapper.haveRelationEndsChanged(EntityGraphMapper.java:391)
at org.neo4j.ogm.mapper.EntityGraphMapper.getRelationshipBuilder(EntityGraphMapper.java:362)
at org.neo4j.ogm.mapper.EntityGraphMapper.link(EntityGraphMapper.java:325)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapEntityReferences(EntityGraphMapper.java:276)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapEntity(EntityGraphMapper.java:157)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapRelatedEntity(EntityGraphMapper.java:571)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapRelationshipEntity(EntityGraphMapper.java:473)
at org.neo4j.ogm.mapper.EntityGraphMapper.link(EntityGraphMapper.java:329)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapEntityReferences(EntityGraphMapper.java:276)
at org.neo4j.ogm.mapper.EntityGraphMapper.mapEntity(EntityGraphMapper.java:157)
at org.neo4j.ogm.mapper.EntityGraphMapper.map(EntityGraphMapper.java:90)
at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate.java:67)
at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate.java:43)
at org.neo4j.ogm.session.Neo4jSession.save(Neo4jSession.java:376)
at neo4j.ogm.ex.Main.main(Main.java:37)
最佳答案
您是否打算对 MyObject
进行建模以包含单个传出关系类型 CONNECTION
和单个传入关系类型 CONNECTION
,其中每个关系都有一个属性名称
?
因此,如果我们查看 EndObject
,那么 startConnection
就是名称 conn2
和 endConnection
的关系与名称conn1
有关系吗?
如果是这样,我们可能会遇到问题。 https://jira.spring.io/browse/DATAGRAPH-728
更新:这毕竟不是一个错误。问题在于 MyObject
中的初始化:
@Relationship(type="CONNECTION")
private MyConnection startConnection = new MyConnection();
@Relationship(type="CONNECTION", direction= Relationship.INCOMING)
private MyConnection endConnection = new MyConnection();
您已将 startConnection
和 endConnection
初始化为无效的关系实体,即没有起始节点和结束节点的实体。
在您的测试中,您在 startObj
上设置了 startConnection
,但没有设置 end。实际上,endConnection
由无效的关系实体表示。
删除初始化,它应该按您的预期工作。
关于java - 当 StartNode 和 EndNode 是同一类型的对象时,Neo4j OGM RelationshipEntity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31807323/
我已经在 OSX 上安装了 Docker 并下载了 neo 镜像。当我运行它时(使用图像主页中的 args),一切似乎都正常,但日志的最后几行表明如下: 00:20:39.662 [main] INF
我的正则表达式在 neos 项目中不能正常工作。DD/MM/YYYY 的正则表达式(仅限 19XX-20XX) var date_regex = /^(0[1-9]|1\d|2\d|3[01])\/(
Neo 4j可以与HDFS / Hadoop集成吗?在处理涉及许多关系且每秒具有大量事务的大型数据集时,通常使用Hadoop来提高Neo 4j的处理能力。 最佳答案 这是一个非常广泛的问题。也许考虑提
我尝试在 NEO 环境中使用 TenantAccessor。TenantAccessor.getCurrentTenant().getTenantId() 生成的 TenantId 作为 GUID 返
我下载了Neoclipse Source并下载了 Neo4J source 。但是 Neo4J 源文件中找不到 Neoclipse 源文件引用的某些类。它们已被弃用吗?我可以获得 Neoclipse
进程文件: neo or neo.exe 进程名称: Price Patrol 进程类别:存在安全风险的进程 英文描述: neo.exe is the execuatble for Pric
load csv with headers from 'file:///C:/Users/user/Desktop/Neo4J' as row Create (:State_Code {state_c
如何在 SAPUI5 应用程序的运行时为 neo-app.json 文件的 routes 部分定义新条目?例如在 Component.js 内部。 例如,我想将以下条目添加到文件中,或者将一些代码添加
我最近将一台计算机变成了 Ubuntu 服务器。我已经按照下面的文章 http://neos.readthedocs.io/en/stable/GettingStarted/Installation.
我正在尝试了解如何使用 NEOS Server for SCIP .我已经阅读了有关 CPLEX LP file format 的教程.但我仍然得不到任何结果。 让我们以该教程中提供的示例为例: Ma
关于这一年Bubble Cup (完)有问题NEO (我无法解决),它要求 给定一个包含 n 个整数元素的数组。我们把它分成几个部分(可能是1个),每个部分都是一个连续的元素。这种情况下的 NEO 值
我的 Rails 应用程序必须使用 Neo4j。所以我开始安装 neo4j 服务器。我按照步骤安装 here在 Linux 上。 但是当我运行的时候 ./bin/neo4j console 它给了 E
我刚从 windows 10 切换到 arch linux我想使用 (Neo)Vim 作为我的代码编辑器我已经完成了自动编译和模糊查找器但我不知道如何在 (Neo)Vim 中调试 任何帮助! 最佳答案
我想问一下,如何使用Spring boot找到Dijkstra。 我目前使用 spring-boot-starter-data-neo4j 库将 Neo4j 与我的 java 类映射。 我现在想使用
我正在尝试创建一个可以从 U2F token (例如 Java 语言的 Yubikey Neo)检索公钥和私钥的应用程序。我尝试在控制台中使用简单的扫描仪从 Yubikey Neo 获取任何内容,但它
我想用摩托罗拉68000汇编器写一个程序,目标平台是Neo Geo(九十年代的游戏机);这个问题很严重,我有一个我想实现的特定项目并且我有编程经验(虽然我现在主要是 Perl/R 编程,但我以前只接触
我使用自定义 Web 服务作为 neo4j 的非托管扩展。 这是 Neo4j 提供的详细信息,我已遵循该详细信息并创建了自己的非托管扩展。 http://neo4j.com/docs/stable/s
Typo3 Neos 是否原生支持元素的响应行为?例如像 css 网格类(col-sm-?? 或 col-md-??)这样的 Bootstrap ,或者我可以使用 Neos 通过 hidden-xs
我是为嵌入式板构建自定义 Linux 操作系统的新手 - 所以请忽略我的无知。 我有一个名为 NanoPi NEO 的开发板,它具有定制的 Debian Linux。现在开发板附带一个 .img 文件
我正在尝试使用脚本在 NEO4j db 中导入 csv 文件: LOAD CSV FROM "file:///dataframe6.txt" AS line RETURN count(*) 但我收到以
我是一名优秀的程序员,十分优秀!