首页 > 解决方案 > 如何在一个项目中同时使用 Cassandra 和 MYSQL?

问题描述

我正在尝试在我的项目中同时使用 Cassandra 和MySQL 。一些数据将保存到 Cassandra 和一些到Mysql。过去 1 年我一直在同一个项目中使用mySql,现在因为我正在扩展它,我也想添加Cassandra DB

我的 Cassandra 配置文件如下。

@Configuration
@PropertySource(value = {"classpath:META-INF/application.properties"})
@EnableCassandraRepositories(basePackages = {"com.example.repository"})

public class CassandraConfig {

@Autowired
private Environment environment;

private static final Logger LOGGER = LoggerFactory.getLogger(CassandraConfig.class);

@Bean
public CassandraClusterFactoryBean cluster() {
    CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
    cluster.setContactPoints(environment.getProperty("spring.cassandra.contactpoints"));
    cluster.setPort(Integer.parseInt(environment.getProperty("spring.cassandra.port")));
    return cluster;
}

@Bean
public CassandraMappingContext mappingContext() {
    return new BasicCassandraMappingContext();
}

@Bean
public CassandraConverter converter() {
    return new MappingCassandraConverter(mappingContext());
}

@Bean
public CassandraSessionFactoryBean session() throws Exception {
    CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();
    session.setCluster(cluster().getObject());
    session.setKeyspaceName(environment.getProperty("spring.cassandra.keyspace"));
    session.setConverter(converter());
    session.setSchemaAction(SchemaAction.NONE);
    return session;

}

@Bean
public CassandraOperations cassandraTemplate() throws Exception {
    return new CassandraTemplate(session().getObject());

}
}

我的存储库是

public interface NewRepository extends CassandraRepository<ID>{ }

现在我正在尝试使用存储库将实体保存到它

repo.save(entity);

其中 repo 是 NewRepository 的对象。

但它显示 InvalidDataAccessApiUsageException:未知类型。

我哪里错了。

先感谢您。

标签: javamysqlspringcassandraspring-data-jpa

解决方案


推荐阅读