2017-03-09 6 views
0

RUNDサービスからCassandraに接続するためにKundera ORMを使用しています。 persistence.xmlで、我々はKunderaとCassandra ThriftClientについて

<property name="kundera.client.lookup.class" 
       value="com.impetus.client.cassandra.thrift.ThriftClientFactory" /> 

以下のようThriftClientFactoryとしてクライアントのルックアップクラスを指定している、これはカサンドラに接続するための正しい方法ですかクンデラを通じてCQLを使用して、我々はカサンドラに接続することができます任意の方法はありますか?

答えて

0

はい、KunderaのThriftClientはCassandraとの通信にCQLを使用します。また、このクライアントの使用中にアプリケーションからCQL3を有効にしていることを確認してください。

CQL3の設定:あなたはのEntityManagerFactoryで

  • 下記いずれかの方法を選択することができます

    HashMap propertyMap = new HashMap(); 
    propertyMap.put(CassandraConstants.CQL_VERSION, CassandraConstants.CQL_VERSION_3_0); 
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("cassandra_pu", propertyMap); 
    
  • のEntityManagerで

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("cassandra_pu"); 
    EntityManager em = emf.createEntityManager(); 
    em.setProperty("cql.version", "3.0.0"); 
    
+0

おかげKarthあなたの応答のためにik。現在、私はcom.impetus.client.cassandra.thrift.ThriftClientFactoryクラスを "kundera.client.lookup.class"として使用しており、9160であるthrift protを介して接続しています。しかし、私たちのcassandra prodクラスタでは、9160ポートが無効になり、 9042のCQL3ポートを使用してください。どのクラスをkunderaクライアントのルックアップに使うべきですか? "com.impetus.kundera.client.cassandra.dsdriver.DSClientFactory"を使用することをお勧めしますか? – Raj

+0

@Rajはい、DSClientFactoryを使用できますが、この場合は自動スキーマ生成機能は動作しません。これが必須でない場合は、 'com.impetus.kundera.client.cassandra.dsdriver.DSClientFacto ry' –

関連する問題