Spring Data Cassandra中编解码器和转换器之间的区别?

时间:2017-09-04 08:36:18

标签: cassandra spring-data-cassandra

Spring Data Cassandra中CodecConverter之间的主要区别是什么?

1 个答案:

答案 0 :(得分:3)

TL; DR;

TypeCodecs是DataStax的Java Cassandra驱动程序的一部分。 Converter是特定于Spring的,可以在驱动程序的顶层上转换值

TypeCodec

它们用于使用Cassandra协议序列化/反序列化值:

  

可以对给定的CQL类型和给定的Java类型进行序列化和反序列化的编解码器。

编解码器主要与本地映射到Java类型的数据类型一起使用,例如INTintegerVARCHARString

编解码器还可用于使用DataStax UDTValue将UDT(表示为annotation-based Mapping add-on)映射到POJO,而无需将UDT值复制到代码中的POJO属性。

Spring Data

说到Apache Cassandra的Spring Data,它在Cassandra驱动程序之上放置了一层抽象。 Spring Data处理对象映射以及许多你不能从驱动程序本地获得的东西。 Spring Data使用转换器将ResultSet Row转换为对象。接近使用约定的转换,您将获得默认的映射行为,这不需要您首先提供其他转换器。

如果要自定义Spring Data的转换,那么您可以提供自定义Converter,例如,将JSON(存储为String)转换为对象或在Cassandra中存储自然不可序列化的数据类型使用Spring Data的默认对象映射。