我有一个带有相关实例化视图的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,但似乎没有一个能提供帮助。
我在做什么错了?
答案 0 :(得分:1)
好吧,答案不多,因为这不是一个问题,但是遇到类似问题的人可能会发现它很有用。
这个特定的问题是由于我查看错误的数据库引起的,该数据库当然没有我创建的表和视图。我有一个我认为设置正确的属性覆盖文件,这是我的错误。
答案 1 :(得分:0)
您是否尝试过在@MaterializedView批注上添加键空间值?
@MaterializedView(keyspace = "xxxx", baseEntity = MyTableType.class, view = "my_table_by_related_id")