2012-11-14 31 views
2

我有這樣的代碼:必填字段「逆轉」並沒有在序列化的數據發現

sliceRange.Start = UTF8StringToBytes(strStart) 
sliceRange.Finish = UTF8StringToBytes(strFinish) 
sliceRange.Reversed = True 
sliceRange.Count = intCount 
predicate.Slice_range = sliceRange 
Dim results As List(Of ColumnOrSuperColumn) = client.get_slice(UTF8StringToBytes(rowKey), columnFamily, predicate, ConsistencyLevel.ONE) 

當我使用此代碼,這導致下面的錯誤從卡桑德拉/節儉: 必填字段「逆轉」是不是在序列化數據中找到!

怎麼了?

回答

0

您似乎對底層生成的Thrift代碼有問題。除非你有特殊的理由,否則不推薦使用Thrift直接訪問Cassandra。有很多client libraries可用,將爲您抽象。儘管如此,我曾經使用Thrift生成的C#代碼編寫我自己的庫,但沒有遇到這個問題。也許你的問題與你使用VB有關?如果您有直接使用Thrift的理由,可以嘗試使用C#中的相同代碼來查看是否可以解決問題。如果沒有,請確保您擁有Cassandra和Thrift的正確版本,因爲那裏的不兼容性可能會導致此類問題。