Neo4j

노드들과 연관관계를 표현하는데 있어서 풍부한 기능들을 제공하는 그래프 데이터베이스이다.

새로운 프로젝트를 만들어주고 아래의 의존성을 추가해준다.
버전마다 하위호환성은 좋지않다.

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-neo4j</artifactId>
        </dependency>

docker로 neo4j를 설치하고 실행한다.
docker run -p 7474:7474 -p 7687:7687 -d --name neo4j_boot neo4j

포트 번호는 브라우저에서 사용하는 것(7474번)과 bolt 포트(7687번) 둘 다 정해줘야 된다.

http://localhost:7474/browser 로 접속하면 브라우저 클라이언트 환경을 제공해준다.

기본 아이디 / 패스워드는 둘 다 neo4j이다.

처음 로그인하면 비밀번호를 변경할 수 있는데, 비밀번호 변경 후, 프로퍼티도 수정해줘야한다.

Neo4j Runner를 만들어 neo4j를 사용해보겠다.

Neo4j를 사용하는 두 가지 방법이 있다.

SessionFactory

Neo4j를 사용하면, SessionFactory라는 Bean을 주입받아 사용할 수 있다.

SessionFactory에서 session을 가져와서 데이터를 다룰 수 있다.

실제로 Account를 만들어 데이터를 다뤄보겠다.

Account클래스를 만들어 @NodeEntity 애노테이션을 붙여준다.

그 후, 아까 만들어준 Runner에 Account를 통해 session에 객체를 넣어준다.

애플리케이션 실행 후, 브라우저에서 account가 생긴 것을 볼 수 있다.

Role이라는 객체를 하나 더 만들어서, 관계를 살펴보려고 한다.

그리고 아까 만들어 준 Account에 Role타입의 set을 추가해준다.

Runner에서 Role을 추가해주고 Account에 연결해준다.

그럼 관계가 생기고 연결되어 있는 모습을 볼 수 있다.

Repository 이용

AccountRepository를 만들어 Neo4jRepository를 extends한다. Neo4jRepository의 값으로는 이용할 객체와, id의 타입을 준다.

그 후, Runner에서 AccountRepository를 주입받아 데이터를 다룬다.

그리고 애플리케이션을 실행시켜보면, 노드가 제대로 생겼음을 볼 수 있다.

0개의 댓글