如何在spring-data-cassandra中使用复合实体?

时间:2014-06-17 13:58:09

标签: spring-data spring-data-cassandra

我第一次设置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时收到错误消息。我无法理解为什么需要主键......

1 个答案:

答案 0 :(得分:1)

由于Cassandra的非关系细节,你会发现它不像JPA那样工作。

Cassandra中没有连接,因此不允许嵌入另一个表作为表的属性。

目前不支持嵌入类型。如果您想详细说明功能请求,请为SDC *创建一个Jira。

感谢。