我想從MySQL遷移到Cassasndra我的數據庫。我面臨的問題是列類型定義爲Enum(枚舉('GP','NGP','PGP','PAGP'))。 Cassandra不支持Enum數據類型(儘管它支持集合)。有沒有一種方法可以在Cassandra中實現枚舉數據類型,以便列的值應該限制在一組值中?我正在使用Apache Cassandra 2.0.7版。卡桑德拉枚舉數據類型
11
A
回答
4
據我所知,在閱讀有關cql類型的文檔後,不能直接在cql語句中使用enum(我爲java客戶端檢查了這一點)。
因此,您擁有的選項是將Enum轉換爲String以將字段包含在cql語句中。通過這種方式,您的所有應用程序都使用Enum,但在後端層使用該枚舉的字符串表示形式。
3
我面臨同樣的問題用一個整數枚舉......這裏就是我所做的:
MappingConfiguration.Global.Define(
new[] {
new Map<Login>()
.TableName("logins")
.PartitionKey(el => el.UserId)
.Column(el => el.UserId, cm => cm.WithName("user_id")),
.Column(el => el.Gender, cm => cm.WithName("gender_id").WithDbType<int>()),
});
使用C#2.5的驅動程序和DSE 4.7。
2
存在卡桑德拉
http://docs.datastax.com/en/developer/java-driver/2.1/java-driver/reference/crudOperations.html
據我知道你可以編寫自己的定製序列等,爲卡桑德拉和它就能瞭解您的具體枚舉或多或少的原生支持枚舉。但那些罐子應該放在cassandra文件夾中。
您也可以將其存儲爲字符串或序號int值
9
見datastax卡桑德拉對象映射API,
http://docs.datastax.com/en/developer/java-driver/2.1/java-driver/reference/crudOperations.html
enum Gender { FEMALE, MALE };
// FEMALE will be persisted as 'FEMALE'
@Enumerated(EnumType.STRING)
private Gender gender;
// FEMALE will be persisted as 0, MALE as 1
@Enumerated(EnumType.ORDINAL)
private Gender gender
的卡桑德拉3.0
enum State {INIT, RUNNING, STOPPING, STOPPED}
cluster.getConfiguration().getCodecRegistry()
.register(new EnumNameCodec<State>(State.class));
// schema: create table name_example(id int PRIMARY KEY, state text)
session.execute("insert into name_example (id, state) values (1, ?)", State.INIT);
// state is saved as 'INIT'
http://docs.datastax.com/en/developer/java-driver/3.1/manual/custom_codecs/extras/
相關問題
- 1. 彈簧數據卡桑德拉無法枚舉轉換
- 2. 卡桑德拉數據庫模型
- 3. 卡桑德拉數據模型
- 4. 卡桑德拉數據模型設計
- 5. 造型卡桑德拉表
- 6. 從卡桑德拉讀取blob類型火花與卡桑德拉連接器
- 7. 解壓卡桑德拉地圖類型
- 8. 卡桑德拉地圖數據類型在where子句
- 9. 的卡桑德拉
- 10. 在卡桑德拉
- 11. 卡桑德拉datamodelling
- 12. 在卡桑德拉
- 13. 在卡桑德拉
- 14. 卡桑德拉:在
- 15. 在卡桑德拉
- 16. 卡桑德拉的數據存儲器
- 17. 卡桑德拉如何複製數據
- 18. 卡桑德拉數據庫設計
- 19. 更新卡桑德拉數據庫
- 20. 導入BLOB數據卡桑德拉
- 21. 卡桑德拉數據同步問題
- 22. 卡桑德拉:數據建模
- 23. 卡桑德拉時間系列數據
- 24. 卡桑德拉:建模定時數據
- 25. 驗證卡桑德拉數據遷移
- 26. 錯誤開始斌/卡桑德拉卡桑德拉當-f
- 27. 卡桑德拉使用datastax卡桑德拉
- 28. 卡桑德拉大於「>」問題卡桑德拉
- 29. 卡桑德拉造型模式
- 30. 與卡桑德拉輪轂模型
另請參見[Datastax java驅動程序3.0.0枚舉註釋未找到](http://stackoverflow.com/a/35135223) –