默认的EntityManager不允许我将列族与<uuid,string =“”> </uuid,>

时间:2013-01-23 11:51:01

标签: java cassandra astyanax

我们已经开始将Cassandra与Astyanax一起用于我们的持久层并且撞到了砖墙。

DefaultEntityManager不允许我使用

的ColumnFamily

Astyanax抛出的错误消息: &#34; 类型为DefaultEntityManager.Builder的withColumnFamily(ColumnFamily)方法不适用于参数(ColumnFamily &#34;

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

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

1 个答案:

答案 0 :(得分:1)

我终于理解为什么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();