neo4j
-
SpringBoot+Neo4j [2. 두 개의 노드 엔티티와 두 개의 관계를 가지는 GraphDB프로젝트]NOSQL/Neo4j 2021. 11. 12. 18:03
목차 SpringBoot+Neo4j A-Z [1. 하나의 노드 엔티티만을 가지는 GraphDB프로젝트]를 따라 하는 대에 무리가 없었다면, RelationShip을 가지는 엔티티의 구현 또한 식은 죽 먹기다. 본 프로젝트에서는 공식 예제에서는 다루지 않는 RelationShip을 갖는 Node에 대해 다룬다. 본 프로젝트까지 진행한다면 SpringDataNeo4J를 이용한 Node와 Relation의 CRUD를 모두 이해할 수 있을 것이다. https://github.com/alska95/Spring_Neo4j_Project 이 코드를 반드시 참고하며 읽어주길 바란다. 이전 프로젝트에서 설명이 부족했던 RelationShip에 대해 먼저 설명하겠다. RelationShip 이란? RelationShip이..
-
SpringBoot+Neo4j [API 구현]NOSQL/Neo4j 2021. 11. 12. 14:23
REST-API를 이용하여 노드 업데이트를 진행해보자. 코드 참고 : https://github.com/alska95/Spring_Neo4j_Project 기존 Spring의 사용법과 다를게 없다.우선 기존에 Spring을 사용하던것과 똑같이 컨트롤러와 서비스를 만들어 보자.기본적인 조회, 저장, 업데이트 기능을 구현했다. 그리고 서비스 클래스는 엔티티를 직접 노출시키지 않기위해 엔티티와 dto를 치환해 주는 정도의 역할 정도로 작성했다. 커낵션 Auth정보를 전달하지 않으면 다음과 같은 에러가 발생한다.org.neo4j.driver.exceptions.AuthenticationException: Unsupported authentication token, scheme='none' only allowe..
-
SpringBoot+Neo4j [1. 하나의 노드 엔티티만을 가지는 GraphDB프로젝트]NOSQL/Neo4j 2021. 11. 9. 14:57
목차 graphDB neo4j를 이해하기 위해 SpringBoot를 이용하여 기본적인 프로젝트부터 진행하기로 했다. graphDB를 이해하기 위한 이론적 요소는 개발을 진행하며 하나하나 다루도록 하겠다. 첫번째 프로젝트가 가질 데이터 구조는 다음과 같다. 해당 노드 엔티티에 대하여 CRUD를 수행할 것이다. CRUD를 수행하기 위해 기존에 사용하던 RDBMS의 쿼리와는 다른, CyperQuery를 사용하게 된다. 우선 노드와 CyperQuery가 무엇인지부터 알아보자. 노드란? 노드는 라벨과 속성(properties)으로 이루어져있다. 라벨은 테이블 이름에 대응되고, 속성은 칼럼명에 대응된다고 이해하면 편하다. 위 노드를 RDBMS모델로 표현하자면 다음과 같이 표현될 수 있을 것이다. 이외에도 노드에는 ..
-
SpringBoot+Neo4j [CRUD 기능 구현]NOSQL/Neo4j 2021. 11. 9. 14:38
Spring을 이용한 Neo4j의 CRUD Method들을 살펴보겠다. 아래 코드를 꼭 참고하며 보는 것을 추천한다. https://github.com/alska95/Spring_Neo4j_Project 앞서 언급한 것처럼 SpringDataNeo4j가 제공하는 3가지 방법을 통해 다뤄보겠다. 1.Neo4jRepository 를 이용하는 방법 2.Neo4jClient를 이용하는 방법 3.Driver을 이용하는 방법 a. Create neo4jRepository 이용 아래와 같이 neo4jRepository의 save를 이용하는 방법이 있다. save 구현 메소드는 Neo4jTemplate클래스의 saveImpl을 참고하면 되는데 복잡하다. 본 프로젝트같이 단순한 프로젝트에서는 pk가 중복되면 업데이트를 ..