2016-11-15 11 views
2

私はAchillesでCassandra 3.6を使用しています。私はカッサンドラで以下のテーブルを設計しました。Cassandra Achilles:1対多のマッピング

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

私は、単一のユーザーに添付多くの車両を持って、私はユーザーIDを選択しますされます、私は、ユーザーの詳細情報を取得する必要がありますし、すべての車両が彼に属します。

アキレスでこれをどのようにマップするのですか?

更新テーブル

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

そしてuserVehiclesテーブルに

vehicleDetails LIST<FROZEN<Vehicle>> 

しようとしました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

何を試しましたか?あなたは車両のテーブル定義は何ですか? – Ivan

+0

上記の新しい構造を更新しました。 – NGR

+0

あなたはどのようなakillesマッピングコードを持っていますか? – Ivan

答えて

0

回答が上記のマッピングに更新されます。ネストしたテーブルの場合、これはAchillesフレームワークを使用してカサンドラに入るべき方法です。

関連する問題