我喜欢存储如下对象:
@Table(value = "my_table")
public class MyTableDto {
@PrimaryKeyColumn(name = "uid", type = PrimaryKeyType.PARTITIONED)
@CassandraType(type = DataType.Name.UUID)
private UUID uid;
@Column(value = "child_ids")
private List<ChildIdDto> childIds;
}
然后我得到异常:
Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Only primitive types are allowed inside Collections for property [childIds] of type ['interface java.util.List'] in entity [de.myapplication.repository.dto.MyTableDto]
我确实了解异常,但是还有另一种持久化自定义对象的方法吗?
编辑:
!永不言败,我找到了解决方案。
举一个很好的例子,我将列出所有相应的类。
ParentClass.java
@Table(value = "my_table") //OPT
public class MyTableDto {
@PrimaryKeyColumn(name = "uid", type = PrimaryKeyType.PARTITIONED)
@CassandraType(type = DataType.Name.UUID)
private UUID uid;
@Column(value = "child_ids") //OPT
private List<ChildDto> childIds;
}
ChildDto.java
@UserDefinedType // THE SOLUTION
public class ChildDto {
@Column(value = "child") //OPT
@CassandraType(type = DataType.Name.TEXT) //OPT
private String groupId;
@Column(value = "description") //OPT
@CassandraType(type = Name.TEXT) //OPT
private String description;
}
的@UserDefinedType
是解决方案。
有关更多信息,请参见此处。
注意:不需要带有“ OPT”的每个注释
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句