我定义了一个UDTPOJO类,如下所示
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@UserDefinedType("address_type")
public class Address {
@Column("address_line")
@CassandraType(type = Name.TEXT)
private String addressLine;
@Column("postal_code")
@CassandraType(type = Name.TEXT)
private String postalCode;
@Column
@CassandraType(type = Name.TEXT)
private String city;
}
并且还在我的cassandra密钥空间中添加了这个UDT定义。我定义UDT字段的实体是
@Table("customer_model")
@Getter
@Setter
public class CustomerModel {
@PrimaryKey
private Integer id ;
@Column("company_name")
private String companyName;
@Column("company_email")
private String companyEmail;
@Column("tax_id")
private String taxId;
@Column("billing_address")
@CassandraType(type = Name.UDT,userTypeName = "address_type")
private Address billingAddress;
@CassandraType(userTypeName = "address_type", type = Name.UDT)
@Column("shipping_address")
private Address shippingAddress;
}
当我尝试进行基本的CRUD操作时,我得到以下异常:,
No converter found capable of converting from type [models.udt.Address] to type [com.datastax.oss.driver.api.core.data.UdtValue]
我试图添加自定义转换器实现,但没有成功。如何使spring找到适合我的POJO UDT到Cssandra UDT类型的转换器?
1条答案
按热度按时间0ejtzxu11#
这里也遇到了类似的问题。How-to-use-userdefinedtypes当您使用
@UserDefinedType
注解UDT POJO时,在将它们用作实体类字段时,无需再次使用m1n 1o1p进行注解。