1

SliceQuery< Long, String, String > は、キータイプが long、列名が文字列、列値が文字列であることを示しています。QueryResult < ColumnSlice< String, String > > を使用してスライスクエリを実行すると、すべての列を取得できますが、キーが長いため、値が long 型の列が必要です。ここで型の安全性がどのように機能するかを確認するのは少し混乱します(クエリの結果が列の型を取得するため)。また、文字列以外の値型の列がある場合、問題が発生するはずです。

さまざまな値の型の列をクエリするために使用できる一般的なスライスクエリを使用するにはどうすればよいですか?

PS : カサンドラ/ヘクターは初めてです。

ありがとう

4

1 に答える 1

1

ほとんど。最初のタイプは、ご指摘のとおり行キーのタイプですが、行キーは列として保存されません。行キーは、別の特別な場所に保管されます。これは、(私のような) リレーショナル DB の世界から来た人々がつまずく落とし穴の 1 つです。

さまざまな型の列の値を管理する方法については、2 つのアプローチがあります。まず、値をバイト配列として保存し、自分でシリアル化します。次に、列名をキーオフして、処理している列 (したがって、どの値の型) を示します。正しい型がわかったら、適切なシリアライザーを使用して、バイト値を正しい型の変数に逆シリアル化できます。独自の複雑なオブジェクトや特殊な型については、独自のシリアライザーを作成できます。

于 2012-08-23T22:11:53.507 に答える