我一直在尝试测试Cassandra UDT的插入,并且一直遇到以下错误:线程“ main”中的异常java.lang.IllegalArgumentException:UserTypeResolver不能为null
在尝试找出自己的方式之后,我尝试完全复制以下方法: 用户定义类型与spring-data-cassandra
但是,我仍然遇到相同的错误。
当我删除UDT并仅插入简单类型时,我能够插入到目标数据库中,因此我知道连接正确。我的配置如下:
@Configuration
@PropertySource(value = { "classpath:cassandra.properties" })
//@EnableCassandraRepositories(basePackages = { "org.spring.cassandra.example.repo" })
public class CassandraConfig {
private static final Logger LOG = LoggerFactory.getLogger(CassandraConfig.class);
@Autowired
private Environment env;
@Bean
public CassandraClusterFactoryBean cluster() {
CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
cluster.setContactPoints(env.getProperty("cassandra.contactpoints"));
cluster.setPort(Integer.parseInt(env.getProperty("cassandra.port")));
return cluster;
}
@Bean
public CassandraMappingContext mappingContext() {
BasicCassandraMappingContext mappingContext = new BasicCassandraMappingContext();
mappingContext.setUserTypeResolver(new SimpleUserTypeResolver(cluster().getObject(), "campaign_management"));
return mappingContext;
}
@Bean
public CassandraConverter converter() {
return new MappingCassandraConverter(mappingContext());
}
@Bean
public CassandraSessionFactoryBean session() throws Exception { …
Run Code Online (Sandbox Code Playgroud)