我有一个带有相关物化视图的Cassandra表。
主键是一个类型为uuid的单个id,我没有排序键。我们称之为
然后我定义了一个针对该表的物化视图。
那两个自定义类型只是UUID的包装器。同样地,它们是继承而来的。
我的物化视图定义如下:
代码似乎已经生成正确,但当我启动我的Spring Boot应用程序时,出现以下错误:
我发现的唯一略微有用的文档是here和here,但似乎都没有提供帮助。
我做错了什么?
主键是一个类型为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应用程序时,出现以下错误:
看起来有一些代码生成正在进行,因此似乎某些内容没有正确生成,但我无法确定是什么。Error:java: 无法找到基本实体类“mypackage.MyTableType”,用于视图类“mypackage.MyTableTypeByRelatedId”。 Error:java: 解析过程中出错:无法找到基本实体类“mypackage.MyTableType”,用于视图类“mypackage.MyTableTypeByRelatedId”。
我发现的唯一略微有用的文档是here和here,但似乎都没有提供帮助。
我做错了什么?
@MaterializedView
注解是从哪里来的?它是 DSE API 还是 Spring Data Cassandra 的一部分?我在这些地方都找不到这样的注解。 - Marchev