Jas*_*son 5 cassandra datastax-java-driver
Datastax 3.x驱动程序中现在有许多API消失了.他们习惯于做我所拥有的'框架'级别的驱动程序包装器类.
https://github.com/datastax/java-driver/tree/3.0/upgrade_guide
升级指南没有提供如何替换已删除API的调用的示例(无论如何我都关心).这里有几个缺失,我正在尝试升级我的代码.有什么想法"替换"了它们?
DataType.serialize(Object value, ProtocolVersion protocolVersion)
DataType.deserialize(ByteBuffer bytes, ProtocolVersion protocolVersion)
DataType.asJavaClass()
DataType.Name.asJavaClass()
Run Code Online (Sandbox Code Playgroud)
现在应该调用哪些API调用这些方法的任何帮助都将受到赞赏.
项目 #2 引用了通过自定义编解码器对数据类型的更改。ATypeCodec不再附加到 a DataType,因为在 3.0 版本的驱动程序中,您可以为数据类型定义自己的编解码器。因此,这些方法不再直接通过 提供DataType。
自定义编解码器 (JAVA-721) 引入了一些重大更改,还修改了一些运行时行为。
以下是重大 API 更改的详细列表:
...
DataType 不再引用 TypeCodec,因此大多数处理数据类型序列化和反序列化的方法已被删除:
ByteBuffer序列化(对象值,ProtocolVersion协议版本)
对象反序列化(ByteBuffer 字节,ProtocolVersion 协议版本)
类 asJavaClass()
如果您可以使用解析默认编解码器或静态方法来解析默认编解码器,则自定义编 解码器应该提供完成所需的一切所需的详细信息。提供了您需要的方法,即:DataTypeTypeCodecCodecRegistry.codecForTypeCodecTypeCodec
TypeCodec<Long> bigIntCodec = TypeCodec.bigint();
bigIntCodec.serialize(10L, protocolVersion);
bigIntCodec.deserialize(bytes, protocolVersion);
Class<?> clazz = bigIntCodec.getJavaType().getRawType();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
271 次 |
| 最近记录: |