изменить тип данных для значения столбца cassandra через сущность kundera jpa

Я использую kundera 2.4 в качестве взаимодействия JPA с Cassandra.

Создано семейство столбцов в кассандре

create column family usageitem  with key_validation_class = 'UTF8Type'
 and comparator = 'UTF8Type' ;

Класс проверки по умолчанию, принятый cassandra для столбца, - BytesType. Я хочу изменить его на UTF8Type через объект jpa

Я не хочу менять определение столбца выше на

create column family usageitem  with key_validation_class =
 'UTF8Type' and comparator = 'UTF8Type' and default_validation_class =
 'UTF8Type' ;

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

Моя сущность JPA выглядит примерно так -

@Entity
@Table(name = "usageitem", schema = "TITAN@TROYUnit")
public class UsageItem {    

@Id
@Column(name="record_id")
private String recordID;

@Column(name="provider_name",columnDefinition="UTF8Type")
private String providerName;

//Setters & Getters ....

}

Итак, как мне указать тип проверки значения столбца cassandra в приведенном выше объекте JPA для вставки данных в utf8 или текстовом формате?


person ip_x    schedule 30.07.2013    source источник


Ответы (1)


Во-первых, я предлагаю обновить версию до версии 2.6.

Во-вторых, в идеале тип данных должен быть синхронизирован с типами данных Cassandra. если это BytesType, он должен быть байтового или байтового типа.

Кроме того, не могли бы вы поделиться ошибкой, которую вы получаете, если значения столбцов определены как "String" в сущности jpa, а это BytesType в Cassandra?

-Вивек

person vivek mishra    schedule 30.07.2013
comment
Тип данных для значения столбца можно добавить или изменить в определении семейства столбцов в любое время (согласно cassandra). Так что в этом случае мне нет необходимости синхронизировать с типом данных cassandra для значения столбца. - person ip_x; 31.07.2013
comment
Я не сталкиваюсь с какой-либо ошибкой во время выполнения. Что мне нужно, так это то, что когда я просматриваю данные элемента использования (семейства столбцов), вставленных через вышеуказанный объект jpa в консоли cassandra-cli, он должен отображать меня в текстовом формате или формате utf8 вместо формата байтов - person ip_x; 31.07.2013
comment
Вивек Мишра, можете ли вы указать какие-либо средства для внесения изменений в сущность JPA вместо изменения существующего запроса базы данных Cassandra для вставки данных типа utf8 в значение столбца - person ip_x; 31.07.2013
comment
изменить @Column (name = provider_name, columnDefinition = UTF8Type) private String providerName; как @Column (name = provider_name, columnDefinition = UTF8Type) закрытый байт [] providerName; и сохраняться в byte [], который будет иметь тип BytesType в Cassandra. - person vivek mishra; 31.07.2013
comment
Вивек Мишра, я обязательно попробую то, что ты упомянул. - person ip_x; 02.08.2013