我正在從Cassandra 2.1遷移到v3,因此使用新的Java Driver v3。 對已由驅動程序附加模塊EnumOrdinalCodec和EnumNameCodec交換的@Enumerated(EnumType.STRING)或ORDINAL進行了更改。Cassandra Java驅動程序3 EnumNameCodec
在我的項目我有:
@Column(name = "myColumn")
@Enumerated(EnumType.STRING)
private myEnum currentMyEnum ;
我查找了有關如何使用他們,但並沒有真正瞭解他們是如何工作的一些例子。 我發現的主要信息是這樣的例子:
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;
...
}
哪一個不清楚。看起來他們把枚舉,編解碼器和DAO模型放在同一個文件中。在我的項目中,枚舉和DAO模型文件不同,當我嘗試將「CodecRegistry.DEFAULT_INSTANCE.register(new EnumOrdinalCodec(myEnum.class))」放在etheir enum或DAO文件中時,IDE Eclipse中出現錯誤。
如果有人可以幫助我如何chnage @Enumerated(EnumType.STRING)使用EnumNameCodec預先感謝。
非常感謝你的回答,真正幫助我。我完全是數據庫和noSQL的新手,我不知道如何註冊一個編解碼器註冊表。如果你有代碼的例子,我會很高興看到。提前致謝。 –