Как использовать тип карты Cassandra в Java

Я создал таблицу в пространстве ключей, например

CREATE TABLE IF NOT EXISTS myks.users (user_id text, device_ids map<text,text>);

I'm trying to insert the below data using `spring-boot-starter-data-cassandra` library in Spring boot

{
    "userId" : "krishna",
    "deviceIds": {
        "DeviceId_0": "TYNLSANID7",
        "DeviceId_1": "julasjasd8",
        "DeviceId_2": "iu89074hasd",
        "DeviceId_3": "Lenovo hjyas|asdqnkasd"
    }
}

и ниже класс сущности

@Column("user_id")
@CassandraType(type = DataType.Name.TEXT)
private String userId;

@Column("device_ids")
@CassandraType(type = DataType.Name.MAP)
private Map<String, String> deviceIds= new HashMap<>();

Я получаю следующее исключение при вставке данных в таблицу

org.springframework.dao.InvalidDataAccessApiUsageException: Expected [2] type arguments for property ['deviceIds'] of type ['interface java.util.Map'] in entity [com.kri.entity.Users]; actual was [0]
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
345
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как указано в документация, вы должны указать свойство typeArguments в определении аннотации, когда вы работаете с Collection, а для конкретного типа данных Map вы должны предоставить два свойства DataType Name, одно для ключа и одно для значения соответственно:

@CassandraType(type = DataType.Name.MAP,typeArguments = { DataType.Name.TEXT,DataType.Name.TEXT} 

Другие вопросы по теме