0

当我尝试QueryContext使用嵌套函数时struct,嵌套结构总是为空struct。我如何解决这个问题?

type User struct {
    Firstname    *string    `json:"firstname" sql:",notnull"`
    Lastname     *string    `json:"lastname" sql:",notnull"`
}

type TestUser struct {
    User *User `json:"user"`
}

query := `
SELECT
users.firstname,
users.lastname
FROM
    test_users
    LEFT JOIN (
        SELECT
        id, firstname, lastname
        FROM
            users
    ) users ON users.id = test_users.user_id
LIMIT 1
`

models := []TestUser{}
_, _ := conn.QueryContext(ctx, &models, query)
    return models, nil

如果go-pgorm不可能做到这一点,是否有任何orm功能可以做到这一点sql

谢谢

4

1 回答 1

0

您必须使用go-pg提供的 ORM 模型抽象。

如果你有两个structs这样的:

type User struct {
    Firstname    *string    `json:"firstname" sql:",notnull"`
    Lastname     *string    `json:"lastname" sql:",notnull"`
}

type TestUser struct {
    User *User `json:"user"`
}

然后您可以models使用.Model

pgdb := pg.Connect(......)
models := []TestUser{}

err =pgdb.Model(&models).Relation("User").Select()
if err != nil {
    log.fatal(err)
}
于 2021-08-19T04:40:32.327 回答