![](/img/trans.png)
[英]EmbeddedCassandra is not working with Cassandra Java driver 4.x
[英]Can the Java Cassandra 4.x mapper convert an Enum to an int?
我有一個非常簡單的枚舉
public enum Axis {
X, Y, Z;
}
我曾經使用EnumOrdinalCodec
3.x 驅動程序將其保存到數據庫中的一個int
中。 使用 4.x 我得到一個錯誤
CQL ks.table: [snip] 在實體 class 中定義:[snip] 聲明編解碼器注冊表不支持的類型映射:字段:axis,實體類型:[snip].Axis,CQL 類型:INT
我找不到任何可用於告訴驅動程序如何 map 枚舉的注釋。 唯一的鈎子似乎是MapperResultProducer
,我無法理解也找不到它的例子。
有沒有比手動將枚舉映射到其序號更好的方法?
此功能從 Java 驅動程序 4.8 開始恢復 - 有一個新的ExtraTypeCodecs
class ,其中包含其他編解碼器。 您需要使用function ExtraTypeCodecs.enumOrdinalsOf(Class)
返回的編解碼器。 (但請參閱那里的評論,最好不要使用它,因為如果您錯誤地更改枚舉,數字可能會更改)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.