使用UDT:
注意:cqlsh:show version
[cqlsh 5.0.1 | Cassandra 2.2.1 | CQL spec 3.3.0 | Native protocol v4]
表
CREATE TYPE fullname (
firstname text,
lastname text
);
CREATE TABLE sample (
id int PRIMARY KEY,
name frozen <fullname>
);
代码:
type Frozen struct {
Firstname string `json:"firstname"`
Lastname string `json:"lastname"`
}
myobj := &Frozen{
Firstname: "pony",
Lastname: "jim",
}
if err := session.Query(`INSERT INTO sample (id, name) VALUES (?,?)`,
2, myobj).Exec(); err != nil {
fmt.Println(err)
}
我明白了:
UDT are not available on protocols less than 3, please update config
更新配置?
答案 0 :(得分:0)
我将Cassandra更新为3.3并且有效。
错误消息让我误以为在Cassandra 2.2上运行了“Native protocol v4”。
升级到3.3我还必须在创建会话时定义键空间后添加以下内容:
ClusterName.ProtoVersion = 4