【发布时间】:2019-02-09 05:57:53
【问题描述】:
我有一个带有关联物化视图的 cassandra 表。
主键是 uuid 类型的单个 id,我没有排序键。我们称之为my_table_id。此表包含我要用于搜索的related_id。
然后我有一个定义为该表的物化视图
PRIMARY KEY (related_id, my_table_id) WITH CLUSTERING ORDER BY (my_table_id ASC)
PS:我意识到在 Cassandra 中分区数据的方式是错误的,但不幸的是,这段代码被继承了。
我在我的 java 代码中将我的表定义为:
@Table(table = "my_table")
public class MyTableType {
@PartitionKey
@Column("my_table_id")
@Codec(MyIdCassandraConverter.class)
CustomUUIDType myTableId;
@Column("related_id")
@Codec(MyRelatedIdCassandraConverter.class)
MyRelatedId relatedId;
(...)
}
这两种自定义类型只是 UUID 的包装器。再次,继承。
我的物化视图定义为:
@MaterializedView(baseEntity = MyTableType.class, view = "my_table_by_related_id")
public class MyTableTypeByRelatedId {
@PartitionKey
@Column("related_id")
@Codec(MyRelatedIdCassandraConverter.class)
MyRelatedId relatedId;
@ClusteringColumn
@Column("my_table_id")
@Codec(MyIdCassandraConverter.class)
CustomUUIDType myTableId;
}
代码似乎生成正确,但是当我启动我的 Spring Boot 应用程序时,我得到:
错误:java:找不到基实体类 视图类的“mypackage.MyTableType” 'mypackage.MyTableTypeByRelatedId' 错误:java:解析时出错:找不到基实体类 视图类的“mypackage.MyTableType” 'mypackage.MyTableTypeByRelatedId'
正在生成一些代码,所以似乎有些东西没有正确生成,但我不太清楚是什么。
我发现的唯一有用的文档是 here 和 here,但似乎没有一个提供帮助。
我做错了什么?
【问题讨论】:
标签: java cassandra datastax datastax-java-driver