[英]Map Cassandra Materialized View with DSE's Java API
我有一個帶有關聯的物化視圖的卡桑德拉表。
主鍵是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.MyTableTypeByRelatedId”的基礎實體類“ mypackage.MyTableType”錯誤:java:解析時出錯:找不到視圖類“ mypackage.MyTableTypeByRelatedId”的基礎實體類“ mypackage.MyTableType”
正在進行一些代碼生成,因此似乎未正確生成某些內容,但我無法弄清楚是什么。
我發現的唯一有用的文檔在這里和這里 ,但似乎沒有一個可以提供幫助。
我究竟做錯了什么?
好吧,答案不多,因為這不是一個問題,但是遇到類似問題的人可能會發現它很有用。
造成此特定問題的原因是,我查看的數據庫錯誤,而數據庫當然沒有我創建的表和視圖。 我有一個我認為設置正確的屬性覆蓋文件,這是我的錯誤。
您是否嘗試在@MaterializedView注釋上添加鍵空間值?
@MaterializedView(keyspace = "xxxx", baseEntity = MyTableType.class, view = "my_table_by_related_id")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.