用于cassandra驱动程序3.0(Java)中用户定义类型的QueryBuilder

时间:2016-06-06 11:50:28

标签: java cassandra cql cql3

我的架构如下

CREATE TABLE location_by_name(
id uuid,
coordinates frozen<coords>,
name text,
primary key (name)
);

CREATE TYPE coords(
longitude double, 
latitude double
);

我可以使用准备好的语句插入数据,但是我无法使用QueryBuilder API来实现,如果有人能指出我正确的方向,那就太棒了。

谢谢!

1 个答案:

答案 0 :(得分:4)

这应该可以解决问题:

UserType coordsType = cluster.getMetadata()
     .getKeyspace("ks")
     .getUserType("coords");
UDTValue coordinates = coordsType.newValue()
    .setDouble("longitude", 2.35)
    .setDouble("latitude", 48.853);
Statement insert = QueryBuilder.insertInto("location_by_name")
    .value("id", id)
    .value("coordinates", coordinates)
    .value("name", name);