2017-02-16 74 views
1

我想用Kundera連接到Cassandra。在我的情況下,我有一個實體X與分區密鑰{A,B}和集羣密鑰{C}。帶分區鍵和集羣鍵的Kundera持久化實體定義

對於每個A和B組合(主鍵),我們有多個C值。

那麼在這種情況下應該如何定義實體?

@Embeddable 
public class PrimayKey implements Serializable{ 

@Column(name = "A") 
    private String a; 

    @Column(name = "B") 
    private String b; 
} 




@Entity 
@Table(name = "X") 
public class X{ 


    @EmbeddedId 
    private PrimayKey key; 

    @Column(name = "C") 
    private String c; 

    @Column(name = "D") 
    private String d; 
} 

在這裏,如果我去通過主鍵找到它不工作,因爲我們對每個A和B組合C和d的多個值。在這種情況下,我們應該如何定義實體?

回答

0

您可以創建一個可嵌入的分區鍵,然後將其用作主鍵中的字段。 Kundera將自動讀取這些實體並將分區鍵以外的字段視爲集羣鍵。

卡桑德拉相當於主鍵:((A,B),C)

實體:

@Embeddable 
public class PartitionKey { 

@Column(name = "A") 
private String a; 

@Column(name = "B") 
private String b; 

} 

@Embeddable 
public class PrimayKey { 

private PartitionKey key; 

@Column(name = "C") 
private String c; 

} 

請參閱本sample entity獲取更多信息。