我正在使用Cassandra和Astyanax客戶端的Spring Web應用程序中工作。我想將從Cassandra查詢檢索到的結果數據轉換爲POJO,但我不知道哪個庫或Astyanax API支持這一點。
例如,我有User
列家族(CF)與一些基本屬性(username, password, email
)和其他相關的附加信息可以添加到此CF.然後,我用OperationResult>來保存數據讀取從CF一個用戶返回行,像這樣:使用Astyanax將Cassandra查詢結果轉換爲POJO
OperationResult<ColumnList<String>> columns = getKeyspace().prepareQuery(getColumnFamily()).getRow(rowKey).execute();
我想要做的是旁邊填充「列」我User
對象。在這裏,我有2個問題,你能幫我解決這個問題:
1 /什麼是User類的最佳結構來保存從用戶CF檢索相應的數據?我的建議是:
public class User {
String userName, password, email; // Basic properties
Map<String, Object> additionalInfo;
}
2 /如何可以通過使用通用方法(以便它可以被施加到已經被映射每一個CF POJO)的卡桑德拉數據轉換成這POJO?
如果在我的問題中存在一些愚蠢的虛擬事物,我非常抱歉,因爲我剛剛接觸了NoSQL概念和Cassandra以及Astyanax兩週。
非常感謝您的幫助。
謝謝你的評論@Easility。但是我已經建立了Astyanax的DAO層,並將其分解爲服務。 PlayORM看起來像Cassandra的另一位客戶,不是嗎?改變另一個目標可能需要很長時間。還有其他庫(不是Cassandra客戶端)支持這種數據轉換嗎? –
是的,Playorm是另一個客戶端,它在內部使用Astyanax作爲Cassandra驅動程序。但它與Cassandra交互的方式並不需要太多時間,因爲它使用緩存等。 – Easility