通过kundera jpa实体更改cassandra列值的数据类型

时间:2013-07-30 11:34:36

标签: jpa cassandra kundera

我正在使用kundera 2.4作为我的JPA与Cassandra的互动。

在cassandra中创建了列族

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

cassandra为列假定的默认验证类是BytesType。我想通过jpa实体将其更改为UTF8Type

我不想将上面的列定义更改为

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 ....

}

那么我应该如何在上面的JPA实体中指定cassandra列值的验证类型来插入utf8或文本格式的数据?

1 个答案:

答案 0 :(得分:0)

首先,我建议升级2.6版本。

其次,理想情况下,数据类型应与Cassandra数据类型同步。如果是BytesType,则它应该是byte或byte类型。

另外,如果在jpa实体中将列值定义为“String”而在Cassandra中为BytesType,那么你能否分享你得到的错误?

-Vivek