gpt4 book ai didi

java - 使用 DSE 的 Java API 映射 Cassandra 物化 View

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:56:28 25 4
gpt4 key购买 nike

我有一个带有关联物化 View 的 cassandra 表。

主键是一个uuid类型的id,我没有排序键。我们称它为 my_table_id。此表包含我要用于搜索的 related_id

然后我有一个定义为该表的物化 View

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 的包装器。同样,继承。

我的物化 View 定义为:

@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: Cannot find base entity class 'mypackage.MyTableType' for view class 'mypackage.MyTableTypeByRelatedId' Error:java: Error while parsing: Cannot find base entity class 'mypackage.MyTableType' for view class 'mypackage.MyTableTypeByRelatedId'

正在进行一些代码生成,因此似乎生成的内容不正确,但我不太清楚是什么。

我找到的唯一有用的文档是 herehere ,但似乎没有人提供帮助。

我做错了什么?

最佳答案

嗯,答案不多,因为这不是一个问题,但遇到类似问题的人可能会发现它很有用。

这个特定问题是因为我查看了错误的数据库,当然没有我创建的表和 View 。我有一个我认为设置正确的属性覆盖文件,那是我的错误。

关于java - 使用 DSE 的 Java API 映射 Cassandra 物化 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52162248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com