GORM: Что такое ссылка: правда в блоке отображения классов домена Grails?
public class Address {
static mapWith = "mongo"
Region region;
Zone zone;
static mapping = {
id generator: 'identity'
region reference:true
zone reference:true
}
}
Мне интересно знать, что reference:true
делает.
По моему опыту, отключение дает точно такой же результат, за исключением того, что нет DBRef
в фактическом документе монго.
2 ответа
Это выглядит как reference
контролирует, как документы связаны.
когда true
на соответствующие документы ссылаются db-refs, если false
ГОРМ вставляет просто id
ака Manual references
в монго
Это означает, что эти свойства будут сохранены в вашей адресной записи по ссылке. Идентификатор Region и идентификатор Zone будут присутствовать в записи при запросе к базе данных вместо хранения всего отображения объекта и любых объектов, которые может содержать его отображение. Возвращение объекта Address будет выглядеть примерно так:
{
"id": "2413",
"region": DBRef("region", "1234"),
"zone": DBRef("zone", "4321")
}
Для не встроенных ассоциаций по умолчанию GORM для MongoDB будет отображать ссылки между документами, используя ссылки на базу данных MongoDB, также известные как DBRefs. Если вы предпочитаете не использовать DBRefs, вы говорите GORM использовать прямые ссылки, используя ссылку: ложное отображение.