5.8. 使用自定义转换器重载默认映射
为了对映射过程有更细粒度的控制,你可以使用’CassandraConverter’实现来注册Spring转换器,例如’MappingCassandraConverter’。
“MappingCassandraConverter”检查是否有任何Spring转换器可以在这些特殊类试图映射自身对象之前处理。 为了’hijack’ MappingCassandraConverter’的正常映射策略,或许为了提高性能或其他自定义映射需求,您首先需要创建一个Spring’Converter’接口的实现,然后将它注册到MappingConverter。
有关Spring类型转换服务的更多信息请点击这里查看参考文档. |
5.9. 执行命令
5.9.1. 执行命令的方法
CassandraTemplate 有许多execute () 和 executeAsync()的重载方法。 传入您希望执行的CQL命令,并处理相应的响应。
此示例使用基础的Spring Data Cassandra附带的AsynchronousQueryListener类。 所有相关选项请参阅API文档。 在这里,你不能使用在Cassandra中的execute()和executeAsync()方法执行任何操作。
cassandraOperations.executeAsynchronously("delete from person where id = '123123123'",
new AsynchronousQueryListener() {
public void onQueryComplete(ResultSetFuture rsf) {
LOG.info("Async Query Completed");
}
});
此示例显示如何使用不同的API对象创建和删除表,并传递对象作为参数给execute()方法。
cassandraOperations.execute("create table test_table (id uuid primary key, event text)");
DropTableSpecification dropper = DropTableSpecification.dropTable("test_table");
cassandraOperations.execute(dropper);
5.10. 异常解释
Spring框架为各种数据库和映射技术提供异常转换。 传统上是用于JDBC和JPA。 对Cassandra的Spring支持通过提供“org.springframework.dao.support.PersistenceExceptionTranslator”接口的实现将此功能扩展到Cassandra数据库。
映射到Spring的一致性数据访问异常层次结构的动机是,您可以编写可移植和可描述的异常处理代码,而无需借助于针对Cassandra异常的编码。Spring的所有数据访问异常都是从“DataAccessException”类继承而来的,所以你可以确保你能够在一个try-catch块中捕获所有与数据库相关的异常。