我们已经开始将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();