Spring Data Cassandra中Codec
和Converter
之间的主要区别是什么?
答案 0 :(得分:3)
TypeCodec
s是DataStax的Java Cassandra驱动程序的一部分。 Converter
是特定于Spring的,可以在驱动程序的顶层上转换值。
它们用于使用Cassandra协议序列化/反序列化值:
可以对给定的CQL类型和给定的Java类型进行序列化和反序列化的编解码器。
编解码器主要与本地映射到Java类型的数据类型一起使用,例如INT
到integer
和VARCHAR
到String
。
编解码器还可用于使用DataStax UDTValue
将UDT(表示为annotation-based Mapping add-on)映射到POJO,而无需将UDT值复制到代码中的POJO属性。
说到Apache Cassandra的Spring Data,它在Cassandra驱动程序之上放置了一层抽象。 Spring Data处理对象映射以及许多你不能从驱动程序本地获得的东西。 Spring Data使用转换器将ResultSet
Row
转换为对象。接近使用约定的转换,您将获得默认的映射行为,这不需要您首先提供其他转换器。
如果要自定义Spring Data的转换,那么您可以提供自定义Converter
,例如,将JSON(存储为String)转换为对象或在Cassandra中存储自然不可序列化的数据类型使用Spring Data的默认对象映射。