Я использую Go с GORM ORM. У меня есть следующие структуры. Отношение простое. Один город имеет несколько мест, а одно место принадлежит одному городу.
type Place struct {
ID int
Name string
Town Town
}
type Town struct {
ID int
Name string
}
Теперь я хочу запросить все места и ладить со всеми их полями информацию о соответствующем городе. Это мой код:
db, _ := gorm.Open("sqlite3", "./data.db")
defer db.Close()
places := []Place{}
db.Find(&places)
fmt.Println(places)
В моей примерной базе данных есть следующие данные:
/* places table */
id name town_id
1 Place1 1
2 Place2 1
/* towns Table */
id name
1 Town1
2 Town2
Я получаю:
[{1 Place1 {0 }} {2 Mares Place2 {0 }}]
Но я ожидаю получить что-то вроде этого (оба места принадлежат одному и тому же городу):
[{1 Place1 {1 Town1}} {2 Mares Place2 {1 Town1}}]
Как я могу выполнить такой запрос? Я пробовал использовать Preloads
и Related
без успеха (возможно, неправильно). Я не могу получить ожидаемый результат.