2016-08-08 7 views
1

spring data cassandraを使用していますが、データモデルの仕方を理解できません。私はそれは私が対応するのPOJOはこのcassandraのネストしたオブジェクトのデータモデリング

@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; 
} 

をしたいと思います

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

次のようになり、顧客のオブジェクトを持っているのであれば、私は唯一の顧客のオブジェクトを格納することを意味しますので、カサンドラテーブルは、一般的に非正規化されていることを理解しますカスタマーオブジェクトに関連付けられたアドレスオブジェクトを取得する何らかの方法があります。これを処理する一般的な戦略のいくつかは何ですか?

何らかの方法でコンポジット/複合キーを使用するか、別のPOJOを作成する必要があります。ここでは、両方のオブジェクトの属性を非定型フォームまたはその他の方法で格納できます。どんなヒントもありがとう。

答えて

0

In Cassandraテーブルは、実行するクエリ(クエリ駆動モデル)で作成されます。 テーブルで実行するクエリまたはクエリのセットを共有してください。

+0

クエリは顧客を名前で取得します。だから、 'select * from customers from name = 'Customer Name''のような単純なものですが、返されるデータには、顧客に関する情報と住所情報が含まれていなければなりません。 – adeelmahmood

+0

create table Customer( Customer_id uuid、 名前テキスト、 アドレスマップ プライマリキー((name)、Customer_id) ); 上記の表を使用できます – killer

関連する問題