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 использовать прямые ссылки, используя ссылку: ложное отображение.

Gorm Mapping
Поисковая ссылка

Другие вопросы по тегам