簡體   English   中英

使用DSE的Java API映射Cassandra物化視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM