go-zero
go-zero copied to clipboard
QueryRowsPartial: assembly variables in the list?
type User struct {
UserId int64 `db:"user_id"`
Nickname string `db:"nickname"`
Introduction string `db:"introduction"`
}
user := User{}
DB.QueryRowPartial(&user, sqlGetUserNicknameByUserId, userId)
DB.QueryRowPartial(&user, sqlGetUserIntroductionByUserId, userId)
这样会拼装好 user 没有问题
users := make([]User, 0)
DB.QueryRowsPartial(&users, sqlGetUserNicknamesByUserIds, userIds)
DB.QueryRowsPartial(&users, sqlGetUserIntroductionsByUserIds, userIds)
这样会返回一个列表,前一半有 nickname,后一半有 introduction,与期望的不符,期望返回的列表的数据是完整的
可否提供一个函数,比如 QueryRowsRowPartial,实现返回一个拼装好 nickname 和 introduction 的列表 使用场景:introduction 这种字段是 text 类型,会单独建表存储,但是和 user 属于同一个模型,还有重构业务时,新的模型可能是从多个表里获取的 大致想法:查询 introduction 时,将结果存到一个 map 里,key 是 select 的第一个字段(user_id),value 是查询结果(user_id,introduction),然后根据 key 找到列表里的对应记录,将 value 拼到对象里,拼装逻辑可以和 QueryRowPartial 一样
Partial means only some columns are returned.
This issue is stale because it has been open for 30 days with no activity.
This issue was closed because it has been inactive for 14 days since being marked as stale.