我正在使用 Cassandra 3.6 和 Achilles。我在 Cassandra 中有以下设计的表格。
CREATE TABLE userVehicles (
userid text,
name text static,
surname text static,
vehicleNum text,
vehicleMake text,
vehicleModel text,
vehicleYear text,
PRIMARY KEY (userid)
);
我将有许多车辆附加到单个用户,当我使用 UserId 进行选择时,我应该获取用户详细信息并且所有车辆都属于他。
如何在阿基里斯映射这个?
更新表
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();
}
}