繁体   English   中英

如何检查Spring Data Cassandra Mapper生成的查询字符串

[英]How can I examine the query string generated by Spring Data Cassandra Mapper

如果我使用com.datastax.driver.mapping.annotations注释注释类,我可以按以下方式编写测试:

MappingManager manager = new MappingManager(session);
Mapper<MyAnnotatedClass> mapper = manager.mapper(MyAnnotatedClass.class);

MyAnnotatedClass entity = ...;

RegularStatement saveQuery = (RegularStatement) mapper.saveQuery(entity);

assertEquals("...", saveQuery.getQueryString());

但是,我有使用org.springframework.data.cassandra.mapping注释注释的实体类。 我一直无法找到一个与MappersaveQuery()getQuery()deleteQuery()相当的Spring。

如何编写(在运行时理想的轻量级)测试有关从Spring Data Cassandra注释的实体类生成的CQL?

使用Spring Data for Apache Cassandra 1.5,您可以编写以下代码来创建Statement

CassandraTemplate template = …

Person person = …

CqlIdentifier tableName = template.getTableName(Person.class);

Insert insert = CassandraTemplate.createInsertQuery(tableName.toCql(), person, 
                    new WriteOptions(), template.getConverter());

Delete delete = CassandraTemplate.createDeleteQuery(tableName.toCql(), person,
                    new WriteOptions(), template.getConverter());

Update update = CassandraTemplate.createUpdateQuery(tableName.toCql(), person, 
                    new WriteOptions(), template.getConverter());

注意:Apache Cassandra 1.5的Spring Data使用BATCH语句进行插入,随着2.0版的发布而改变。

CassandraTemplateCassandraConverter是1.5版查询创建中涉及的关键类。 在Spring Data 2.0中,事情会发生一些变化,因为2.0将为部分实体更新提供额外的QueryUpdate类型。 因此,查询创建从CassandraTemplate.create…Query(…)QueryUtils.create…Query(…)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM