Search code examples
springneo4jspring-data-neo4jspring-data-neo4j-4

How to modeling this relation in spring data neo4j?


Given I have two entity: Person and Company, and there are multiple relationships between them:

Person - Company:

  1. The person can be the employee of the company
  2. The person can be the shareholder of the company
  3. The person can be the legal person of the company

Company - Company:

  1. The company can be the legal of the company
  2. The company can be the shareholder of the company

enter image description here

So how to modeling this in spring data neo4j?

What I tried is make 3 relationship types: EMPLOY, INVEST, LEGAL, each relationship type with the Company as the StartNode and the person as the EndNode, then in company and person, keep these relationships with the "UNDIRECTED" direction, just same as the diagram present, but always get the stackoverflow error when saving and searching.


Solution

  • Yes, now here is the solution in github, all the classes are house in sample.spring.data.neo4j package, and the the corresponding test sample.spring.data.neo4j.repositories.CompanyRepositoryTest

    The big issue at the beginning is it always throws the StackOverFlow exception which is due the the lombok annotation, after remove all the lombok annotations and use the plain getter/setter, everything goes well.