Kundera - 使用EntityManagerFactory

时间:2018-04-30 21:28:53

标签: cassandra datastax kundera

我有一个应用程序,它使用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。请让我知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

目前的代码无法做到这一点。我在github (track issue #1005)中添加了一个修复程序。

此修补程序将在下一个Kundera版本中提供,或者您可以从源代码构建代码以尽快使用它。

-Karthik