因此,从1.5开始,我们可以使用@UserDefinedType映射UDT。我们在尝试映射其中一个时遇到错误:
@UserDefinedType("criteria")
public class Criteria {
@CassandraType(type = Name.VARCHAR)
private String cle;
@CassandraType(type = Name.VARCHAR)
private String nom;
@CassandraType(type = Name.VARCHAR)
private String format;
}
我们在发布时收到此错误:
org.springframework.dao.InvalidDataAccessApiUsageException:未知 在实体中输入属性[cle]的[class java.lang.String] [com.laposte.ariane.udt.Critere];只有原始类型和集合 或允许原始类型的地图
为避免这种情况,我们删除了@CassandraType注释,但这似乎不正确。
我们的地图有什么问题?
答案 0 :(得分:2)
DataStax'驱动程序仅通过Name.TEXT
报告Name.VARCHAR
作为原始数据类型,但不报告DataType.allPrimitiveTypes()
。 Spring Data Cassandra使用DataType.allPrimitiveTypes()
来解析名称以键入映射。我提交了ticket来为这两个添加显式类型映射。
另见: