2017-02-16 6 views
1

J'essaie d'utiliser Kundera pour me connecter à Cassandra. Dans mon cas, j'ai une entité X avec la clé de partition {A, B} et la clé de cluster {C}.Définition de l'entité de persistance Kundera avec clé de partition et clé de cluster

Nous avons plusieurs valeurs de C pour chaque combinaison A et B (clé primaire).

Alors, dans ce cas, comment définir l'entité?

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

ici si je vais pour une découverte par clé primaire son ne fonctionne pas comme nous avons plusieurs valeurs de C et D pour chaque combinaison A et B. Dans un tel cas, comment devrions-nous définir l'entité?

Répondre

0

Vous pouvez créer un intégrable pour la clé de partition, puis l'utiliser comme champ dans la clé primaire. Kundera lira automatiquement les entités et considérera les champs autres que les clés de partition comme des clés de clustering.

Cassandra équivalent Clé primaire: ((A, B), C)

Entité:

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

} 

S'il vous plaît se référer ce sample entity pour plus d'informations.