java - Datastax java 驱动程序 3.0.0 未找到枚举注释

标签 java enums cassandra datastax-java-driver

希望我能很好地阅读文档: http://docs.datastax.com/en/developer/java-driver/3.0/java-driver/reference/crudOperations.html .

The Enumerated annotation

If your class contains an enum type field, you use the Enumerated annotation.

我有一个 Java 枚举,我想使用 @Enumerated 注释,但我似乎无法在 3.0.0 版本的驱动程序中找到它,它存在于 2.1.9 中。

$ find . -type f -name \*.jar|while read i; do echo ====== $i =====; jar -tf $i|grep Enumerated; done
====== ./cassandra-driver-core/2.1.4/cassandra-driver-core-2.1.4-javadoc.jar =====
====== ./cassandra-driver-core/2.1.4/cassandra-driver-core-2.1.4-sources.jar =====
====== ./cassandra-driver-core/2.1.4/cassandra-driver-core-2.1.4.jar =====
====== ./cassandra-driver-core/2.1.5/cassandra-driver-core-2.1.5.jar =====
====== ./cassandra-driver-core/2.1.7.1/cassandra-driver-core-2.1.7.1.jar =====
====== ./cassandra-driver-core/2.1.9/cassandra-driver-core-2.1.9.jar =====
====== ./cassandra-driver-core/3.0.0/cassandra-driver-core-3.0.0-sources.jar =====
====== ./cassandra-driver-core/3.0.0/cassandra-driver-core-3.0.0.jar =====
====== ./cassandra-driver-dse/2.1.5/cassandra-driver-dse-2.1.5.jar =====
====== ./cassandra-driver-extras/3.0.0/cassandra-driver-extras-3.0.0.jar =====
====== ./cassandra-driver-mapping/2.1.4/cassandra-driver-mapping-2.1.4-javadoc.jar =====
com/datastax/driver/mapping/annotations/class-use/Enumerated.html
com/datastax/driver/mapping/annotations/Enumerated.html
====== ./cassandra-driver-mapping/2.1.4/cassandra-driver-mapping-2.1.4-sources.jar =====
com/datastax/driver/mapping/annotations/Enumerated.java
====== ./cassandra-driver-mapping/2.1.4/cassandra-driver-mapping-2.1.4.jar =====
com/datastax/driver/mapping/annotations/Enumerated.class
====== ./cassandra-driver-mapping/2.1.7.1/cassandra-driver-mapping-2.1.7.1.jar =====
com/datastax/driver/mapping/annotations/Enumerated.class
====== ./cassandra-driver-mapping/2.1.9/cassandra-driver-mapping-2.1.9.jar =====
com/datastax/driver/mapping/annotations/Enumerated.class
====== ./cassandra-driver-mapping/3.0.0/cassandra-driver-mapping-3.0.0-sources.jar =====
====== ./cassandra-driver-mapping/3.0.0/cassandra-driver-mapping-3.0.0.jar =====

这在新版本中有变化吗?如果是,文档也应该更新。

它似乎从来源中消失了:https://github.com/datastax/java-driver/tree/3.0/driver-mapping/src/main/java/com/datastax/driver/mapping/annotations

最佳答案

看起来对@Enumerated 的支持已被删除。现在,枚举支持由 drivers-extras 中的编解码器提供。查看这两张票以获取更多信息:JAVA-605JAVA-846 .

example您的枚举代码可能如下所示:

[Use] EnumOrdinalCodec and EnumNameCodec:

 java    
 enum Foo {...}
 enum Bar {...}

 // register the appropriate codecs
 CodecRegistry.DEFAULT_INSTANCE
     .register(new EnumOrdinalCodec<Foo>(Foo.class))
     .register(new EnumNameCodec<Bar>(Bar.class))

 // the following mappings are handled out-of-the-box
 @Table
 public class MyPojo {
     private Foo foo;
     private List<Bar> bars;
     ...
 }

我们正在修复文档。

关于java - Datastax java 驱动程序 3.0.0 未找到枚举注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35132643/

相关文章:

java - 类似于 HQL 中的 % 运算符

c++ - C++ 错误中的舍入数字 - 表达式必须具有整数或枚举类型

Java 似乎没有正确比较 double

c++ - 如何将范围放在枚举上?

c++ - 两个枚举有一些共同的元素,为什么会产生错误?

java - 为什么我的 Cassandra 准备语句摄取数据如此慢?

cassandra - 使 cassandra 在本地节点上存储数据

java - 使用@Column获取变量

java - 设置 mime 类型

java - Glassfish 无法找到/实例化 Jersey WebApplicationProviderImpl