-1

我正在开发一个Spring应用程序,需要与Cassandra使用Hector. 需要一些关于如何接近的帮助。我也想使用JPA和利用 Spring 的依赖注入特性。

任何积分都有帮助!

4

4 回答 4

1

回答您的第一个问题:您必须设计和规范您的数据模型,以便它可以减少多个列族之间的遍历。例如,如果您在 CF itemlist 中存储一些用户 ID,您应该插入具有使用详细信息的用户 JSON 对象而不是该用户 ID,这样可以避免在获取对 usermaster CF 的遍历时

于 2013-06-12T06:36:06.427 回答
0

我已经设法使用这个文档很容易地完成了它,但这给你留下了 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();

我希望这有帮助。

于 2013-08-14T22:01:29.057 回答
0

对于 JPA 合规性,我使用了 Kundera,我可以很容易地将它与弹簧集成,是的,正如 Hardik Bhalani 建议的那样,色谱柱系列经过精心设计以实现最大效率

于 2013-08-14T17:08:47.157 回答
0

您可以尝试使用 Playorm,它 1. 支持两个列族的 sql 类连接 2. 也提供对列的索引支持。

于 2013-08-15T19:40:20.463 回答