2016-11-15 105 views
2

我正在使用Cassandra 3.6和Achilles。我在卡桑德拉下面设计了桌子。Cassandra Achilles:一对多映射

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

你有哪些跟腱映射代码? – Ivan

回答

0

回答在映射上述更新。对于嵌套表格,这是您应该在Cassandra中使用Achilles框架的方式。