2016-11-15 4 views
2

J'utilise Cassandra 3.6 avec Achille. J'ai ci-dessous conçu la table à Cassandra.Cassandra Achilles: Cartographie un à plusieurs

CREATE TABLE userVehicles (
    userid text, 
    name text static, 
    surname text static, 
    vehicleNum text, 
    vehicleMake text, 
    vehicleModel text, 
    vehicleYear text, 
    PRIMARY KEY (userid) 
); 

Je vais avoir beaucoup de véhicules attelés à utilisateur unique et quand je choisirai avec UserId, je devrais obtenir les détails de l'utilisateur et tout véhicule lui appartient.

Comment faire une carte dans Achilles ??

table mise à jour

CREATE TYPE Vehicle(
--------- 
) 

Et puis dans la table userVehicles

vehicleDetails LIST<FROZEN<Vehicle>> 

Essayé cartographie achillies

@Table(keyspace="keyspace", table="userVehicles") 
public class UserDetails{ 

    @PartitionKey(value = 1) 
    private String userid ; 

    @Column 
    private String name ; 

    @Column 
    private String surname; 

    @Column 
    private List<@Frozen Vehicle> vehicle; 
} 

@UDT(keyspace="keyspace", name="vehicle") 
public class Vehicle { 

    @Column 
    private String vehicleNum ; 

    @NotNull 
    @Column 
    private String vehicleMake ; 

    @Column 
    private String vehicleModel ; 

    @NotNull 
    @Column 
    private String vehicleYear ; 

} 

@Configuration 
@CompileTimeConfig(cassandraVersion = CassandraVersion.CASSANDRA_3_7) 
public class AchillesConfiguration { 

    @Autowired 
    ManagerFactory managerFactory; 

    @Bean 
    public User_Manager userEntityManager(){ 
     return managerFactory.forUser(); 
    } 

} 
+1

Qu'avez-vous déjà essayé? Quelles sont les définitions de table pour les véhicules? – Ivan

+0

Mise à jour de la nouvelle structure testée ci-dessus. – NGR

+0

quel code de mappage d'achilles avez-vous? – Ivan

Répondre

0

réponse est mis à jour dans la cartographie ci-dessus. Pour les tableaux imbriqués, c'est comme ça que vous devriez aller à Cassandra avec le framework Achilles.