当前位置: 首页 > 知识库问答 >
问题:

Neo4j-无法创建关系实体

双浩涆
2023-03-14

我试图在Neo4j中插入两个节点之间的关系。我正在使用Neo4J(2.1.8社区)

我正在使用尝试创建员工经理关系。此关系实体是报表。(两个类都在下面给出)

但当我试图挽救这段感情的时候

Employee manager = new Employee("Dev_manager", "Management");
Employee developer = new Employee("Developer", "Development");
developer.setReportsTo(manager);
developer.relatedTo(manager, "REPORTS_TO")
employeeRepository.save(developer);

我得到了例外作为

线程“main”组织中出现异常。springframework。刀。DataRetrievalFailureException:关系[0]没有propertyKey=“type”的属性。;嵌套的异常是org。neo4j。图b。NotFoundException:关系[0]没有propertyKey=“type”的属性。

任何人都可以帮助我,这是什么错误的代码。

当我将Employee中的关系类型更改为

@RelatedToVia(type = "REPORT_TO", elementClass = Report.class, direction = Direction.INCOMING)

注意:我在本教程中使用此参考。

Employee.java班

@NodeEntity
public class Employee {

@GraphId
private Long id;
private String name;
private String department;

@Fetch
@RelatedTo(type = "REPORTS_TO")
private Employee reportsTo; //Employee reports to some employee (i.e. Manager).

@Fetch
@RelatedTo(type = "REPORTS_TO", direction = Direction.INCOMING)
Set<Employee> directReport; //All the employees who reports to this particular this employee.

@Fetch
@RelatedToVia(type = "REPORTS_TO", elementClass = Report.class, direction = Direction.INCOMING)
Set<Report> relations = new HashSet<Report>(); // All the incoming relationship entities.
//*** Constructor, Getter-setters and other methods...
}

汇报java类

@RelationshipEntity(type = "REPORTS_TO")
public class Report {

@GraphId
private Long id;
private String title;

@Fetch
@StartNode
private Employee child;

@Fetch
@EndNode
private Employee parent;
//*** Constructor, Getter-setters and other methods...
}

它看起来像是在节点之间创建了2个关系。REPORTS_TO)和使用该关系的另一个关系(即。REPORT_TO)。有人能告诉我为什么会这样吗?

共有1个答案

阚原
2023-03-14

关系直接报告之间有什么不同?

我认为SDN只是与所有重复的关系列表混淆了?

如果它们一次被声明为无类型的轻关系,一次被声明为关系实体。

我认为在这种情况下,它更清晰,更容易使用

模板。创建员工、经理和下属之间的关系

或者只需创建、填充和保存关系实体报告

否则,您必须确保所有侧面的所有集合彼此一致。

 类似资料:
  • 我有一个Orders表,其中的< code>resellerID列是一个可空整数。在大多数记录中,< code>resellerID为NULL,但有时它包含一个与Resellers表相关联的整数,该表包含< code>resellerID和< code>resellerName列。 当我尝试添加两个之间的关系时,我收到以下错误: 问题是<code>Orders的可为Null性质吗。经销商ID列?这

  • 在使用@RepositoryRestResource将域对象导出到Rest时,如何在Java中创建Neo4j关系?

  • 我有一个CSV数据集,我试图通过它在数据库中已经存在的两个节点类型(和)之间建立关系。 这是数据库信息- 问题是--无论我尝试哪个密码查询,它们都返回相同的东西--“无更改,无行”。 此查询只返回“no rows”。 我还尝试了该查询的一个变体,其中我没有使用函数,但这并没有什么不同。 为了确保节点存在,我从CSV文件中选择了随机单元格值,并使用子句来确保数据库中存在相应的和节点,并且找到了所有节

  • 下面是我的密码 请告诉我,我应该如何从csv文件指定关系。

  • 我使用Spring数据Neo4J来定义不同人员之间的无向关系。下面提供了一个示例实体类。 如上所述,一个人有一个类型为“人”的朋友列表。该关系保持无方向,以确保如果一个人A是“Friend_With”的人B,那么人B也是“Friend_With”的人A。 下面提供了添加好友的代码 我已经添加了PersonB作为PersonA的朋友,所以理想情况下,这应该意味着 因为关系是无方向的 但当我在询问,在

  • 我使用以下命令将数据从csv文件加载到Neo4j中。输入文件很大,有数百万行。当这个查询运行时,我可以查询节点的数量并检查进度。但是一旦它停止创建节点,我想它就会继续创建关系。但我无法检查这一步的进展。 我有两个疑问: 它是否处理每一行文件的命令,即为每一行源码创建节点和关系等?? 或者它一次创建所有节点,然后创建关系。 下面是加载文件的密码器。