我正在使用适用于Java的Cassandra适配器的1.5.1版本,我正在尝试将记录插入到具有使用UDT作为列值的Map列的表中(键只是一个varchar)。我使用cqlsh创建了表,并且能够在CQL中插入它就好了。当我尝试使用CassandraTemplate ... insert()时,我得到的只是:
UserTypeResolver不能为空
我的UDT类定义为:
@UserDefinedType(" iss_type&#34) 公共类IssueType {
@CassandraType(type = DataType.Name.VARCHAR)
private String issue_code;
@CassandraType(type = DataType.Name.VARCHAR)
private String issue_name;
@CassandraType(type = DataType.Name.TIMESTAMP)
private Date issue_start;
@CassandraType(type = DataType.Name.TIMESTAMP)
private Date issue_end;
我的桌子被定义为 @表 公共类IssueMap {
@PrimaryKeyColumn(
type = PrimaryKeyType.PARTITIONED)
private UUID map_id;
@Column
private Map<String, IssueType> issue_map;
在我的配置中,我有: @豆 public CassandraMappingContext cassandraMapping() 抛出ClassNotFoundException { BasicCassandraMappingContext mappingContext = new BasicCassandraMappingContext(); mappingContext.setUserTypeResolver(new SimpleUserTypeResolver(cluster()。getObject(),&#34; campaign_management&#34;)); return mappingContext; }
我在这里缺少什么吗?或者是不可能以这种方式定义列?我意识到我可以使用查询构建器来创建CQL并执行插入操作,但我希望能够充分利用Cassandra模板功能。