我在Cassandra数据库中有十进制值,如何获得该值
cluster = Cluster.builder().addContactPoint("dev").withPort(9042).build();
cluster.getConfiguration().getCodecRegistry().register(InstantCodec.decimal());
Select select = QueryBuilder.select().from("app");
session = cluster.connect(keyspace);
ResultSet resultSet = session.execute(select);
Map<String,Map<String,Long>>map = new HashMap();
resultSet.forEach(x ->map.put(x.getString("signal_name"),x.getMap("config",String.class,Long.class)));
2条答案
按热度按时间jgwigjjp1#
@sathish,
decimal
CQL数据类型Map到java类型中的BigDecimal
。有关详细信息,请参阅CQL到Java类型Map文档。话虽如此,下面是我利用DataStax Astra DB来演示这一点的示例:
4.15.0
version,这是撰写本文时的最新版本。希望这能有所帮助!
👉 Please support the Apache Cassandra community by hovering over the
cassandra
tag then click on theWatch tag
button. 🙏 Thanks!6ju8rftf2#
你不需要去修改编解码器,这个错误是因为Cassandra
DECIMAL
类型没有Map到JavaDouble
。假设我有一个数值类型的表,如下所示:
使用查询生成器,我可以查询和Map这些类型,如下所示:
一个Cassandra
DECIMAL
类型Map到一个BigDecimal
,所以尝试使用它。Github回购:https://github.com/aar0np/SelectNumerics