从数据库中检索自定义对象
短信预约 -IT技能 免费直播动态提醒
本篇文章向大家介绍《从数据库中检索自定义对象》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。
问题内容我有一个数据存储表,就像这样
name/id | useremail | userrole | userpermissions
------------------------------------------------------
json 中的 userrole
属性是 string
。然而,在 go
代码中,它是一个类型
type userdetails struct {
nameid string
useremail string
userrole usertype
userpermissions string //json??
}
type usertype string
const (
unknownuserrole usertype = "unknown"
siteadmin usertype = "site_admin"
sitehr usertype = "site_hr"
)
func (ut *usertype) string() string {
return string(*ut)
}
func usertypefromstring(usertype string) usertype {
switch usertype {
case "site_admin":
return siteadmin
case "site_hr":
return sitehr
default:
return unknownrole
}
}
现在,我必须读取给定 org
的所有用户。我正在使用此代码来执行此操作
func (c DataStoreClient) GetUserDetailsByOrg(ctx context.Context, orgName string) ([]*UserDetails, error) {
var userDetails []*UserDetails
q := datastore.NewQuery(userDetailsKind).
Namespace(orgName)
keys, err := c.client.GetAll(ctx, q, &userDetails)
for i, key := range keys {
userDetails[i].NameID = key.Name
}
return userDetails, err
}
如何使用上述代码将 usertype
从数据存储读取到 userdetails.usertype
枚举中?
解决方案
问题中的代码按原样工作。无需按照其他答案中的建议实现 PropertyLoadSaver 或循环返回的实体。
自定义数据类型是字符串。数据存储包将所有字符串类型编组到数据存储字符串或从数据存储字符串编组。它确实有效。
本篇关于《从数据库中检索自定义对象》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注编程网公众号!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341