猿问

结构上定义的 Golang gRPC 数据库序列化密钥格式

我想将 gRPC 编译器直接生成的 go 结构用于数据库事务,但问题是jsongRPC 仅设置了序列化字段。


有没有办法设置额外的序列化密钥(如下所示),或者是否有另一种特定于 golang 的方式来告诉数据库驱动程序(sqlx在上面database/sql)json应该使用密钥格式?


一些示例 - 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在本示例中),但感觉不一致并增加了很多复杂性。


至尊宝的传说
浏览 146回答 1
1回答

桃花长相依

我认为目前没有内置的方法可以做到这一点。但是,您可能有兴趣关注此线程:https ://github.com/golang/protobuf/issues/52除此之外,我认为您可以为数据库访问创建另一个结构并使映射显式,这可能更具可读性。
随时随地看视频慕课网APP

相关分类

Go
我要回答