Начиная с базовых c Has Many
отношений
type Owner struct {
ID uint `gorm:"primary_key"`
Owned []Owned `gorm:"foreignkey:OwnerId"`
}
typ Owned struct{
ID uint `gorm:"primary_key"`
OwnerId uint
}
Ведьма дала следующую SQL базу данных
Owner
ID
1
2
Owned
ID | OwnerId
1 | 1
2 | 1
3 | 1
4 | 2
5 | 2
Я хотел бы иметь столбец FavoriteOwnedId
в таблице владельца, чтобы сослаться на мою любимую строку. Что должно выглядеть так:
Owner
ID | FavoriteOwnedId
1 | 2
2 | 5
Owned
ID | OwnerId
1 | 1
2 | 1
3 | 1
4 | 2
5 | 2
Я предполагаю, что что-то вроде следующего позволит мне получить это
owner := &Owner
db.Where("id = ?", someId).
Preload("FavoriteOwned").
Preload("Owned").
First(&owner)
Но я не могу найти способ написать необходимый тег gorm, чтобы сделать это работает. Мне удается написать Has One
или Has Many
, но я не пишу их одновременно.
Есть идеи?