我有一个应用程序,它使用Kundera从对象生成表。我想改变Cassandra复制因子。我分别使用EntityManagerFactory与数据库交互以初始化,保存记录等。
我知道我们可以创建一个单独的kundera-cassandra.xml文件并提及复制因子。但是,这会给我抛出一个错误,并说密钥空间不存在。另外,我不想这样做。
我想使用EntityManagerFactory更改复制因子,但不知何故它不起作用。
这是我的初始化函数:
props.put(KUNDERA_NODES_KEY, host);
props.put(KUNDERA_PORT_KEY, String.valueOf(port));
props.put(KUNDERA_KEYSPACE_KEY, databaseName);
props.put(CassandraConstants.CQL_VERSION,CassandraConstants.CQL_VERSION_3_);
props.put("replication_factor", 2);
entityManagerFactory = Persistence.createEntityManagerFactory(
DataServiceConfiguration.KUNDERA_PERSISTENCE_UNIT, props);
LOG.info("DataServiceImpl initialized with Properties: " + props);
注意:我也尝试将复制因子值设置为String,并尝试使用CassandraConstants。请让我知道我做错了什么?
答案 0 :(得分:0)
目前的代码无法做到这一点。我在github (track issue #1005)中添加了一个修复程序。
此修补程序将在下一个Kundera版本中提供,或者您可以从源代码构建代码以尽快使用它。
-Karthik