私はUUIDとペアint64モードで構成されたタプル列を持つテーブルがあります。Gocqlカスタムマーシャラー
CREATE TABLE ks.mytable {
fileid frozen <tuple <bigint, uuid>>,
hits counter,
...
と私は、現在のようなCQL文を使用してフィールドを設定することができます。
UPDATE ks.mytable hits = hits + 1 WHERE fileid=(? ?);
を
と私は引数として2つの変数、int64
とgocql.UUID
を渡します。
代わりにどこにでも周りの2つの変数を移動するので、私は構造体にこれらを入れたい、
type MyID struct {
id int64
uid gocql.UUID
}
のようなもの、その後UPDATE
ステートメントにこれらを渡すためにMarshaller
を使用しています。
これは可能ですか?私はタプルフィールドの単一の変数を渡すことができるかどうかはわかりません。もしそうなら、どうしたらいいですか?私はどのように把握することはできません - あなたが述べたように、私はhttps://github.com/gocql/gocql/blob/master/marshal_test.go#L935を模倣しようとしていたが、私は、私は構造体のフィールドを設定することができないエラーを取得しています(cannot refer to unexported field or method proto
)
エラーは、エクスポートされていない変数やメソッドを別のパッケージから使用しようとしているためです(つまり、大文字で始まらない)。しかし、これの横に、私は助けることができないので、私はcqlを知らない。 'proto'の代わりに' Proto'を書くことはあなたの問題を解決するかもしれません。 – AkiRoss