我对cassandra完全是新手,有一个问题:我定义了一个简单的udt import com.datastax.oss.driver.api.mapper.annotations.cqlname;
@CqlName("emailaddress")
public class EmailAddress {
private String name;
private String email_address;
public EmailAddress() {}
public EmailAddress(String name, String emailAddress) {
this.name = name;
this.email_address = emailAddress;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail_address() {
return email_address;
}
public void setEmail_address(String email_address) {
this.email_address = email_address;
}
}
我的实体定义如下:
....
@Frozen
private List<EmailAddress> participants;
.....
我用一个方法save()创建了简单的dao,但是当我试图运行它时,我得到了以下错误
在实体类com.salesforceiq.graph.sigparser.signatures中定义的cql ks.table:signature\u data.signatures声明编解码器注册表不支持的类型Map:field:participants,实体类型:com.salesforceiq.graph.sigparser.emailaddress,cql type:udt(signature\u data.emailaddress)java.lang.illegalargumentexception:实体类com.salesforceiq.graph.sigparser.signatures中定义的cql ks.table:signature\u data.signatures声明编解码器注册表不支持的类型Map:field:participants,实体类型:com.salesforceiq.graph.sigparser.emailaddress,cql类型:udt(signature\u data.emailaddress)
我可能错过了一些注解为我的udt,但我不知道哪一个
1条答案
按热度按时间bnlyeluc1#
我假设你用
@Entity
. 有关示例,请参见cassandrajava驱动程序的entities页面。它似乎无法正常工作
participants
列。不支持其类型,因此您可能需要为其实现自定义编解码器。有关详细信息,请参阅“自定义编解码器”页。干杯!