如何在查询时将cassandra列值转换为相应的枚举

v09wglhw  于 2021-06-15  发布在  Cassandra
关注(0)|答案(1)|浏览(325)

我们有一个int类型的cassandra列,int的这个值对应于一个enum的值,在查询时有没有办法将这个int列转换成enum字符串。

o4tp2gmn

o4tp2gmn1#

不可能在cql本身中实现,但是java驱动程序通过使用 EnumOrdinalCodec 类(文档示例):

enum State {INIT, RUNNING, STOPPING, STOPPED}

cluster.getConfiguration().getCodecRegistry()
        .register(new EnumOrdinalCodec<State>(State.class));

// schema: create table ordinal_example(id int PRIMARY KEY, state int)
session.execute("insert into ordinal_example (id, state) values (1, ?)", State.INIT);

相关问题