为什么Spring Data找不到适合UDT的转换器?

njthzxwz  于 2022-10-21  发布在  Spring
关注(0)|答案(1)|浏览(135)

我定义了一个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类型的转换器?

0ejtzxu1

0ejtzxu11#

这里也遇到了类似的问题。How-to-use-userdefinedtypes当您使用@UserDefinedType注解UDT POJO时,在将它们用作实体类字段时,无需再次使用m1n 1o1p进行注解。

相关问题