Как написать класс сущностей Java, поддерживающий коллекцию вложенных кортежей? - PullRequest
0 голосов
/ 21 октября 2019

Мне нужно хранить данные в cassandra, которому нужен один столбец для поддержки списка вложенных кортежей. Ниже приведена небольшая часть таблицы.

CREATE TABLE user_table (
  k int PRIMARY KEY,
  v list<frozen<tuple<int, tuple<int, int>>>>
);

Я пытался создать класс сущностей, но не уверен, как использовать Tuple или TupleValue. У меня тоже все в порядке с пользовательскими типами, если это решает проблему.

До сих пор я использовал следующую зависимость в проекте.

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-cassandra</artifactId>
        </dependency>

Но я узнал об этом от других авторов. что нам нужно использовать следующее, чтобы использовать кортежи.

 <!--       <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-cassandra</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency> -->

Но я все еще не мог импортировать какой-либо класс или мог написать любой класс сущностей, который решит мою проблему.

ОБНОВЛЕНИЕ : Попытка использовать UDT, а не кортежи. Успешно из консоли cqlsh вставить записи в соответствии с моим требованием. Работаем над классом сущностей. Скрестив пальцы.

CREATE TYPE cpi.ABC (
x int,
y int
);

CREATE TYPE cpi.XYZ (
num int,
aBC FROZEN <ABC>
);

CREATE TABLE user_table (
  k int PRIMARY KEY,
  v list<frozen<XYZ>>
);

INSERT INTO user_table (k, v) VALUES(10000, [{num:2,aBC:{x:3,y:4}}, {num:3,aBC:{x:4,y:5}}]);
...