Datastax 对象映射中的一致性级别 API
Consistency level in Datastax Object Mapping API
也许我忽略了它,但我找不到在 Datastax Object Mapping API 中为 Java 指定一致性级别的方法。
我知道它基于 CQL3,在 CQL 中,您可以通过 USING CONSISTENCY 子句指定一致性。但是在对象映射 API 中,您不会直接处理查询。那么在持久化或检索对象时如何指定一致性?
有大量文档取决于您具体在做什么。请检查以下页面:
- http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/class-use/ConsistencyLevel.html
- http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/Statement.html
也许其中之一会对您的具体情况有所帮助。
我们也有同样的问题,因为我们使用了Mapper
class的save()
方法。您可以使用 saveQuery()
方法从映射的 class 中创建 Statement
。这是示例:
final MappingManager mappingManager = new MappingManager(session);
Mapper<MyMappedClass> myMapper = mappingManager.mapper(MyMappedClass.class);
MyMappedClass myMappedInstance = new MyMappedClass(property1, propert2);
session.execute(myMapper.saveQuery(myMappedInstance).setConsistencyLevel(QUORUM));
查看了 GitHub 中的代码。确实有一种方法可以设置读写一致性级别。您可以使用@Table 注释指定一致性级别。
@Table (keyspace="XXX", name="riders", readConsistency="QUORUM", writeConsistency="QUORUM")
也许我忽略了它,但我找不到在 Datastax Object Mapping API 中为 Java 指定一致性级别的方法。
我知道它基于 CQL3,在 CQL 中,您可以通过 USING CONSISTENCY 子句指定一致性。但是在对象映射 API 中,您不会直接处理查询。那么在持久化或检索对象时如何指定一致性?
有大量文档取决于您具体在做什么。请检查以下页面:
- http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/class-use/ConsistencyLevel.html
- http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/Statement.html
也许其中之一会对您的具体情况有所帮助。
我们也有同样的问题,因为我们使用了Mapper
class的save()
方法。您可以使用 saveQuery()
方法从映射的 class 中创建 Statement
。这是示例:
final MappingManager mappingManager = new MappingManager(session);
Mapper<MyMappedClass> myMapper = mappingManager.mapper(MyMappedClass.class);
MyMappedClass myMappedInstance = new MyMappedClass(property1, propert2);
session.execute(myMapper.saveQuery(myMappedInstance).setConsistencyLevel(QUORUM));
查看了 GitHub 中的代码。确实有一种方法可以设置读写一致性级别。您可以使用@Table 注释指定一致性级别。
@Table (keyspace="XXX", name="riders", readConsistency="QUORUM", writeConsistency="QUORUM")