go之在struct上定义的Golang gRPC数据库序列化 key 格式
Renyi-Fan
阅读:207
2025-06-02 22:19:02
评论:0
我想直接使用gRPC编译器生成的go结构进行数据库事务,但是问题是gRPC仅设置了json序列化字段。
有没有办法设置其他序列化 key (如下所示),或者还有另一种特定于golang的方式来告诉数据库驱动程序(sqlx之上的database/sql)应使用json key 格式?
某些示例-gRPC编译器创建以下结构:
type HelloWorld struct {
TraceId string `protobuf:"bytes,1,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`
...
我想要的是:
type HelloWorld struct {
TraceId string `db:"trace_id" protobuf:"bytes,1,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`
...
临时的解决方法是编写使用别名的SQL查询(在此示例中为
traceid而不是
trace_id),但感觉不一致,从而增加了很多复杂性。
请您参考如下方法:
我认为目前尚无内置方法。但是,您可能对关注此线程感兴趣:https://github.com/golang/protobuf/issues/52
除此之外,我认为您可以只创建另一个用于数据库访问的结构,并明确显示映射,这可能更易读。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



