私はアプリケーションに取り組んでおり、を使用Spring
して話す必要があります。どのようにアプローチするかについての助けが必要です。Springの依存性注入機能も利用したいです。Cassandra
Hector
JPA
どのポイントも助かります!
1. 2 つの columnfamilies の結合のような SQL をサポートする Playorm を使用してみることができます。 2. 列に対するインデックス作成のサポートも提供します。
JPA 準拠のために、私は Kundera を使用しました。Spring と非常に簡単に統合できました。はい、Hardik Bhalani は、最大の効率を達成するために列ファミリーが慎重に設計されていることを示唆しています。
私はこのドキュメントを使用してかなり簡単にそれを行うことができましたが、これによりSimpleCassandraDao(DAOに注入できる)が残ります-これはかなり制限されています.
私がしたことは、実用的に接続を作成することでした:
@PostConstruct
public void connect() {
if (Boolean.parseBoolean(isActive)) {
CassandraHostConfigurator cassandraHostConfigurator = new CassandraHostConfigurator(this.socket);
cluster = HFactory.getOrCreateCluster(clusterName, cassandraHostConfigurator);
ConfigurableConsistencyLevel consistencyLevelPolicy = new ConfigurableConsistencyLevel();
consistencyLevelPolicy.setDefaultReadConsistencyLevel(getConsistencyLevelPolicy());
keyspace = HFactory.createKeyspace(keyspaceName, cluster, consistencyLevelPolicy);
if (isConnected())
fireConnectionEvent(true);
else {
LOG.error("Could not connect to socket " + this.socket + ". Connection to Cassandra DB is down!!!");
}
} else {
LOG.info("Cassandra connection is not active hence could not connect to socket " + this.socket
+ ". Please activate the connection before trying to connect");
}
}
このメソッドは Spring Bean ( Componentアノテーションでアノテーションが付けられている) の一部であるため、アプリケーションがデプロイされると、接続プールが作成されます。ご覧のとおり、接続イベントを発生させています ( Spring Application-Eventサポートを使用)。イベントは、新しく作成されたキースペースを保持し、Dao によってキャッチされます。このようにして、私の Dao は必要なクエリを初期化できます。例えば:
StringSerializer stringSerializer = StringSerializer.get();
SliceQuery<String, String, String> query = HFactory.createSliceQuery(this.keyspace, stringSerializer, stringSerializer, stringSerializer)
.setColumnFamily(columnFamily).setRange(null, null, false, 4).setKey(rowKey);
ColumnSlice<String, String> columnsSlice = query.execute().get();
List<HColumn<String, String>> columns = columnsSlice.getColumns();
これが役立つことを願っています。