我们已经开始将Cassandra和Astyanax用作我们的持久层,并且遇到了麻烦。

DefaultEntityManager不允许我将ColumnFamily与

Astyanax引发的错误消息:
“类型为DefaultEntityManager.Builder的withColumnFamily(ColumnFamily)方法不适用于参数(ColumnFamily)

我们想使用TimeUUIDTypes作为键,以便它们是唯一的并按时间排序。

我还能如何使用UUID作为密钥?

最佳答案

我终于明白了为什么Astyanax不允许我使用ColumnFamily。我的错误是我在使用参数(Object,String)而不是(Object,UUID)定义EntityManager

ColumnFamily<UUID, String> columnFamily = new ColumnFamily< UUID, String>(
    "Merchant",  // Column Family Name
    StringSerializer.get(), //  Key Serializer
    StringSerializer.get());    //  Column Serializer

EntityManager<Merchant, UUID > entityPersister = new DefaultEntityManager.Builder<Merchant, UUID >()
    .withEntityType(Merchant.class)
    .withKeyspace(keyspace)
    .withColumnFamily(columnFamily)
    .build();

08-28 09:21