- 映射
“CassandraMappingConverter”提供了丰富的映射支持。 “CassandraMappingConverter”具有丰富的元数据模型,提供了将域对象映射到CQL表的一套完整的特性功能集合。 使用域对象上的注解来填充映射元数据模型。 然而,基础架构不会强求使用注解作为元数据信息的唯一来源。“CassandraMappingConverter”还允许您通过遵循一组公约来将对象映射到文档,而不用提供任何其他元数据。
本章节,我们会描述CassandraMappingConverter的特性,关于如何使用公约将对象映射到文档以及如何使用基于注解的映射元数据覆盖这些约定。
7.1. 基于公约的映射
当没有提供额外的映射元数据时,“CassandraMappingConverter”有一些用于将对象映射到CQL表的公约,它们是:
- 长度短的Java类名将以下列方式映射到表名,比如“com.bigbank.SavingsAccount”这样的类名映射到“savings_account”表名。
- 转换器将使用任何与它注册的Spring转换器来覆盖对象属性到文档字段/值的默认映射。
- 对象中的字段用于转换文档中的字段。 不使用公共JavaBean属性。
7.1.1. 如何在映射层中处理CQL复合主键字段
TODO
7.1.2. 映射配置
如果没有显式配置,那么创建“CassandraTemplate”时会默认创建一个“CassandraMappingConverter”实例。您可以创建自己的“MappingCassandraConverter”实例,以便告诉它在启动时扫描类路径以查找域类,以便提取元数据和构造索引。此外,通过创建自己的实例,您可以注册Spring转换器来将特定类映射到数据库或相反的操作。
您可以使用Java或基于元数据的XML来配置“CassandraMappingConverter”和CassandraTemplate。 这里有一个Spring的Java基础配置的例子
例子 39. @Configuration类来配置Cassandra映射支持
TODO
例子 40. XML模式来配置Cassandra映射支持
TODO