Spring Data Cassandra 中的编解码器和转换器之间的区别?
Difference between codec and converters in Spring Data Cassandra?
Codec
和 Converter
在 Spring Data Cassandra 中的主要区别是什么?
TL;博士;
TypeCodec
s 是 DataStax 的 Java Cassandra 驱动程序的一部分。 Converter
是 Spring 特定于转换值 在驱动程序的顶部 。
TypeCodec
它们习惯于 serialize/deserialize 使用 Cassandra 协议的值:
A Codec that can serialize and deserialize to and from a given CQL type and a given Java Type.
编解码器主要与本地映射到 Java 类型的数据类型一起使用,例如 INT
到 integer
和 VARCHAR
到 String
。
编解码器也可用于映射 UDT(表示为 UDTValue
) to a POJO using DataStax annotation-based Mapping add-on,无需您将 UDT 值复制到代码中的 POJO 属性。
Spring数据
说到 Apache Cassandra 的 Spring 数据,它在 Cassandra 驱动程序之上放置了一个抽象层。 Spring 数据处理对象映射和许多您无法从驱动程序本地获取的内容。 Spring 数据使用转换器将 ResultSet
Row
转换为对象。使用约定进行转换,您将获得默认的映射行为,不需要您首先提供额外的转换器。
如果您想自定义 Spring 数据的转换,那么您可以提供一个自定义 Converter
来,例如,将 JSON(存储为字符串)转换为对象或存储Cassandra 中的数据类型自然无法使用 Spring 数据的默认对象映射进行序列化。
Codec
和 Converter
在 Spring Data Cassandra 中的主要区别是什么?
TL;博士;
TypeCodec
s 是 DataStax 的 Java Cassandra 驱动程序的一部分。 Converter
是 Spring 特定于转换值 在驱动程序的顶部 。
TypeCodec
它们习惯于 serialize/deserialize 使用 Cassandra 协议的值:
A Codec that can serialize and deserialize to and from a given CQL type and a given Java Type.
编解码器主要与本地映射到 Java 类型的数据类型一起使用,例如 INT
到 integer
和 VARCHAR
到 String
。
编解码器也可用于映射 UDT(表示为 UDTValue
) to a POJO using DataStax annotation-based Mapping add-on,无需您将 UDT 值复制到代码中的 POJO 属性。
Spring数据
说到 Apache Cassandra 的 Spring 数据,它在 Cassandra 驱动程序之上放置了一个抽象层。 Spring 数据处理对象映射和许多您无法从驱动程序本地获取的内容。 Spring 数据使用转换器将 ResultSet
Row
转换为对象。使用约定进行转换,您将获得默认的映射行为,不需要您首先提供额外的转换器。
如果您想自定义 Spring 数据的转换,那么您可以提供一个自定义 Converter
来,例如,将 JSON(存储为字符串)转换为对象或存储Cassandra 中的数据类型自然无法使用 Spring 数据的默认对象映射进行序列化。