2016-08-08 2 views
1

spring data cassandra을 사용하고 있으며 데이터 모델의 이해 방법에 문제가 있습니다. 나는이cassandra의 중첩 된 객체 데이터 모델링

{ 
    name: "Test Customer", 
    address: { 
    city: "New york", 
    state: "NY" 
    } 
} 

과 같은 고객 개체가있는 경우 그 의미 그래서 해당 POJO를 내가에만 고객 객체를 저장할 그래서이

@Table 
public class Customer { 
    @PrimaryKey //just using this as key for this example 
    private String name; 
    private Address address; 
} 

public class Address { 
    private String city; 
    private String state; 
} 

싶습니다 카산드라 테이블은 일반적으로 정규화하는 것을 이해 고객 오브젝트와 연관된 주소 오브젝트를 검색하는 f}이 있습니다. 이 문제를 해결하기위한 일반적인 전략은 무엇입니까?

어떤 식 으로든 복합/복합 키를 사용하거나 두 개체의 특성을 다른 방식으로 저장할 수있는 별도의 POJO를 만들어야합니다. 모든 힌트를 부탁드립니다.

답변

0

있음 Cassandra 테이블은 수행하려는 쿼리 (쿼리 구동 모델)에서 생성됩니다. 테이블에서 수행 할 쿼리 또는 쿼리 집합을 공유하십시오.

+0

쿼리는 고객을 이름으로 검색합니다. 따라서 고객이 'select * from customer ='와 같이 간단하지만 반환되는 데이터에는 고객 정보와 주소 정보가 포함되어 고객 자바 객체에 채울 수 있어야합니다. – adeelmahmood

+0

create table Customer ( Customer_id uuid, 이름 텍스트, 주소 맵 기본 키 ((name), Customer_id) ); 위의 표를 사용할 수 있습니다. – killer