У меня есть таблица Кассандры со связанным материализованным представлением.
Первичный ключ - это один идентификатор типа uuid, и у меня нет ключа сортировки. Давайте назовем это 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'
Идет генерация кода, поэтому, похоже, что-то генерируется неправильно, но я не могу понять, что именно.
Единственная легкая полезная документация, которую я нахожу, это здесь и здесь , но, похоже, никто не предлагает помощь.
Что я делаю не так?