Golang go-pg отношение рекурсивный запрос

Мне нужно будет присоединиться к рекурсиву, что-то вроде этого:

SELECT a.*, b.* c.* FROM a
LEFT JOIN b on b.id = a.b_id
LEFT JOIN c ON c.id = b.c_id

И мое определение модели:

type A struct {
    ID int,
    NameA string,
    B_id int
    B *B,
    C *C,
}

type B struct {
    ID int,
    C_id int,
    NameB string,
    C C,
}

type C struct {
    ID int,
    NameC string,
}

Я пытаюсь использовать отношение, но не работает:

a := A{}
//does not work
db.Model(&a).Relation("B").Relation("C").First()

//works
db.Model(&a).Relation("B").First()

Как я могу добиться рекурсивного соединения на go-pg, пожалуйста, дайте мне знать, если у кого-то есть опыт работы с ним. Большое спасибо.

0 ответов

Вам нужно будет указать, что это на самом деле отношение ко второй структуре:

db.Model(&a).Relation("B").Relation("B.C").First()
Другие вопросы по тегам