spring-data-cassandra component/complex 类型非规范化映射
spring-data-cassandra component/complex type denormalized mapping
我正在尝试使用 spring-data-cassandra (1.1.2.RELEASE),但我 运行 遇到了 JPA 中缺少可嵌入类型映射的问题说法。
我有一个这样的实体 class:
@Table
public class Customer {
private UUID id;
private String name;
private Address address;
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
和可嵌入地址class:
public class Address {
private String address;
private String city;
private String state;
private String zip;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getZip() {
return zip;
}
public void setZip(String zip) {
this.zip = zip;
}
}
我的卡桑德拉table:
create table customer (
id uuid primary key,
name text,
address text,
city text,
state text,
zip text
);
我希望将 Address 的属性映射到包含的实体中,我不希望地址单独 table。在 JPA 中,我相信我会使用 @Embeddable 注释。 spring-data-cassandra 中是否有类似的结构?
spring-data-cassandra 尚不支持可嵌入类型。 DATACASS-167.
提供功能请求
实体唯一可能嵌入的部分是主键。如果您的主键包含多个字段,您可以将这些字段外化到一个单独的 class 中,然后在 @PrimaryKey
注释中使用它。
Comment.java
@Table("comments")
public class Comment {
@PrimaryKey
private CommentKey pk;
private String text;
}
CommentKey.java
@PrimaryKeyClass
public class CommentKey implements Serializable {
private static final long serialVersionUID = -7871651389236401141L;
@PrimaryKeyColumn(ordinal = 0, type = PrimaryKeyType.PARTITIONED)
private String author;
@PrimaryKeyColumn(ordinal = 1)
private String company;
}
HTH,马克
我正在尝试使用 spring-data-cassandra (1.1.2.RELEASE),但我 运行 遇到了 JPA 中缺少可嵌入类型映射的问题说法。
我有一个这样的实体 class:
@Table
public class Customer {
private UUID id;
private String name;
private Address address;
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
和可嵌入地址class:
public class Address {
private String address;
private String city;
private String state;
private String zip;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getZip() {
return zip;
}
public void setZip(String zip) {
this.zip = zip;
}
}
我的卡桑德拉table:
create table customer (
id uuid primary key,
name text,
address text,
city text,
state text,
zip text
);
我希望将 Address 的属性映射到包含的实体中,我不希望地址单独 table。在 JPA 中,我相信我会使用 @Embeddable 注释。 spring-data-cassandra 中是否有类似的结构?
spring-data-cassandra 尚不支持可嵌入类型。 DATACASS-167.
提供功能请求实体唯一可能嵌入的部分是主键。如果您的主键包含多个字段,您可以将这些字段外化到一个单独的 class 中,然后在 @PrimaryKey
注释中使用它。
Comment.java
@Table("comments")
public class Comment {
@PrimaryKey
private CommentKey pk;
private String text;
}
CommentKey.java
@PrimaryKeyClass
public class CommentKey implements Serializable {
private static final long serialVersionUID = -7871651389236401141L;
@PrimaryKeyColumn(ordinal = 0, type = PrimaryKeyType.PARTITIONED)
private String author;
@PrimaryKeyColumn(ordinal = 1)
private String company;
}
HTH,马克