Недавно я начал использовать Golang и решил попробовать GORM в качестве ORM. Он работает довольно хорошо с большинством вещей, но, поскольку большинство ORM иногда ограничены. К счастью, он очень хорошо связан с базой данных / sql, поэтому я могу легко выполнять пользовательские запросы.
Мне интересно, есть ли какой-либо другой способ сделать это в gorm: у меня есть структура компаний, у компаний есть отношения от одного до многих с помощью электронной почты, адресов и телефонов. Я использую следующий код в gorm, чтобы получить список компаний и соответствующую информацию. Я использую функцию предварительной загрузки gorm.
db.DBAccess.
Model(&companies).
Count(&dbInfo.Count).
Order("companies.id asc").
Offset(offset).
Limit(length).
Preload("Addresses").
Preload("Phones").
Preload("Emails").
Find(&companies)
Это прекрасно работает. Однако я чувствую, что есть другой способ добиться этого без функции предварительной загрузки. Любые идеи?
Preload
, если отношение указано правильно. Если нет, в пакет следует добавить какой-то параметр, напримерCascadingRead
, который вызывает рекурсивное создание экземпляра, а не возвращает мне объект с пустыми массивами, который должен содержать многие элементы, с которыми мой текущий объект имеет отношения внешнего ключа. - person evanmcdonnal   schedule 09.06.2015