gpt4 book ai didi

java - 如何从集合中读取 UDT(例如 :list) of UDTs with cassandra-driver in java?

转载 作者:行者123 更新时间:2023-11-30 02:41:22 31 4
gpt4 key购买 nike

我有 table emp(id,name,list<frozen<address>>) 。这里地址是cassandra UDT定义为create TYPE address (hno int,street text); 。我试图使用下面的代码读取 emp 中给定 id 的所有地址,但出现以下错误:

Exception in thread "main" com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [frozen<'address'> <-> com.xyz.cassandra.address]

String query1="select * from iotbilling.emp where id=?";
PreparedStatement preparedStatement2=this.session.prepare(query1);
BoundStatement boundStatement2=preparedStatement2.bind(4);
ResultSet rs2=this.session.execute(boundStatement2);
Row row2=rs2.one();
List<address> addresses=row2.getList("adresses",address.class);
System.out.println("Addresses retrieved");
for(address adr:addresses)
System.out.println(adr.toString());

`

这里,如何捕获从cassandra返回的java代码中的卡住地址列表?

最佳答案

您可以从行中读取值并逐行读取元数据:

UDTValue udtData = row.getUDTValue(address);

例如:

udtData.getString("name");

使用列表示例进行更新

对于列表来说,它可能应该如下所示:

List<UDTValue> udtDataList = row.getList("adresses", UDTValue.class)

然后您可以轻松地遍历列表并访问数据字段。

最佳

关于java - 如何从集合中读取 UDT(例如 :list) of UDTs with cassandra-driver in java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41589519/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com