2017-12-27 11 views
0

두 개의 문서 (TableA 및 TableB)가 있습니다. TableA는 TableB를 참조하지만 함께 결합 할 수는 없습니다. 그들은 "관련성이없는"데이터이기 때문에. 또한 TableA에서 TableB로는 일종의 "ManyToOne"관계가 있습니다. 따라서 TableA 데이터를 TableA에 넣지 않으려합니다 (중복 문제). 그건 내 TableA의의 JSON은 다음과 같이 보일 것입니다 :스프링 데이터 couchbase에서 관계를 성취하는 방법은 무엇입니까?

{ 
    "class":"tableA", 
    "tableB": [ 
    "1", "2" 
    ] 
} 

TableB의의 JSON :

[ 
    { 
     "class": "tableB", 
     "id": "1", 
     "name": "name1" 
    }, 
    { 
     "class": "tableB", 
     "id": "2", 
     "name": "name2" 
    } 
] 

그래서, 스프링 데이터 카우치베이스 주식회사에서 제작 한 두 개의 서로 다른 문서 : TableA의와 TableB의. 내 Tablet 엔티티 (@Document)에서 TableB를 직접 참조하거나 단순히 문자열 (ID) 배열을 유지해야합니까? TableB를 직접 참조하면 위의 json을 얻지 못할 것입니다. 여기에서 가장 염려되는 부분은 모든 데이터를 모바일 장치에 복제하는 것입니다. 나는 데이터가 반복되고 메모리 문제를 일으키지 않기를 바랄 것이다. 도와주세요.

답변

0

@ManyToOne과 같은 관계 주석은 spring-data-couchbase에 의해 지원되지 않으며 이미 알고 있듯이 Couchbase 자체에서 관계를 강화하는 것은 없습니다.

나는 현재 프로젝트에서 많은 엔티티에 걸쳐 관계가 있으며, 모두 id/key를 문자열로 참조하고 각 엔티티의로드를 직접 관리합니다.

그래서 TableB를 문자열 배열로 참조하고 TableB에서 필요로하는 정보와 함께 모바일에 데이터를 보내거나 DTO 클래스를 만든 다음 손으로 채 웁니다. 당신의 고객.

+0

맞아, 나는 이쪽으로 나아 갔다. – User1230321

관련 문제