Cassandra 升级对Datastax Java API的调用,这些调用在3中消失
Datastax 3.x驱动程序中现在已经没有了许多API。它们被用来完成我所拥有的“框架”级驱动程序包装类 《升级指南》没有提供如何替换对已删除API的调用的示例(无论如何我都很关心)。下面是一些缺失的代码,我正在尝试升级我的代码。你知道是什么“取代”了它们吗Cassandra 升级对Datastax Java API的调用,这些调用在3中消失,cassandra,datastax-java-driver,Cassandra,Datastax Java Driver,Datastax 3.x驱动程序中现在已经没有了许多API。它们被用来完成我所拥有的“框架”级驱动程序包装类 《升级指南》没有提供如何替换对已删除API的调用的示例(无论如何我都很关心)。下面是一些缺失的代码,我正在尝试升级我的代码。你知道是什么“取代”了它们吗 DataType.serialize(Object value, ProtocolVersion protocolVersion) DataType.deserialize(ByteBuffer bytes, ProtocolVer
DataType.serialize(Object value, ProtocolVersion protocolVersion)
DataType.deserialize(ByteBuffer bytes, ProtocolVersion protocolVersion)
DataType.asJavaClass()
DataType.Name.asJavaClass()
现在应该调用这些方法的API的任何帮助都将不胜感激。Item#2通过自定义编解码器引用对数据类型的更改。TypeCodec
不再连接到DataType
,因为在驱动程序的3.0版本中,您可以为数据类型定义自己的编解码器。因此,这些方法不再通过数据类型
直接提供
自定义编解码器(JAVA-721)引入了一些突破性的更改,还修改了一些运行时行为
以下是破坏性API更改的详细列表:
DataType不再引用TypeCodec,因此处理数据类型序列化和反序列化的大多数方法已被删除:
- ByteBuffer序列化(对象值,ProtocolVersion ProtocolVersion)
- 对象反序列化(字节缓冲字节,ProtocolVersion ProtocolVersion)
- 类asJavaClass()
数据类型
,则应通过使用解析类型编解码器
或解析默认编解码器的类型编解码器
静态方法,提供完成所需一切所需的详细信息TypeCodec
提供您需要的方法,即:
TypeCodec<Long> bigIntCodec = TypeCodec.bigint();
bigIntCodec.serialize(10L, protocolVersion);
bigIntCodec.deserialize(bytes, protocolVersion);
Class<?> clazz = bigIntCodec.getJavaType().getRawType();
TypeCodec bigIntCodec=TypeCodec.bigint();
序列化(10L,协议版本);
反序列化(字节,协议版本);
类clazz=bigIntCodec.getJavaType().getRawType();
非常感谢,为我节省了很多时间!这些问题和提供的答案应在Cassandra升级文档中提供。我在寻找同样的问题!谢谢