我第一次设置spring-data-cassandra
并且有一个类似的类:
@Table(value = "contact")
public class Contact {
@Id
UUID id;
...
Location Location;
...
public void setLocation(Location location) {
this.location = location;
}
public Location getLocation() {
return location;
}
}
启动时出现错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySQLTransactionRepository': Invocation of init method failed; nested exception is org.springframework.data.cassandra.mapping.VerifierMappingExceptions: com.foo.backend.core.Location:
Cassandra entities must have the @Table, @Persistent or @PrimaryKeyClass Annotation
....
来自spring-data-jpa
背景,仅使用Location
注释@Embeddable
已经足够了。看起来这不适用于spring-data-cassandra
。 如何将复合实体用于spring-data-cassandra
?
是否必须将location
注释为@Transient
并自行进行一些序列化?我尝试使用@Persistent
为我的课程添加注释,但在PrimaryKey
上错过Location
时收到错误消息。我无法理解为什么需要主键......
答案 0 :(得分:1)
由于Cassandra的非关系细节,你会发现它不像JPA那样工作。
Cassandra中没有连接,因此不允许嵌入另一个表作为表的属性。
目前不支持嵌入类型。如果您想详细说明功能请求,请为SDC *创建一个Jira。
感谢。