Плагин Grails MongoDB: встроенные коллекции и ссылки - PullRequest
7 голосов
/ 19 ноября 2010

Первоначально опубликовано в списке рассылки Grails ...

Обычно я не специалист по базам данных, но с выпуском последнего подключаемого модуля mongodb для Grails я хотел узнать, в чем заключается проблема с noSQLбазы данных.MongoDB кажется довольно интересным.Я читал информацию о хранилище, ориентированном на документы, и столкнулся со следующим сценарием:

Клиент / Заказ / Позиция строки заказа

В документе сказано, что заказы должны быть коллекцией.клиенты коллекции.элементы строки должны быть массивом элементов строки, встроенных в объект порядка.

Что касается GORM, как обеспечивается этот шаблон?Обычно я получаю следующее:

class Customer {
    static hasMany = [orders: Order]
}

class Order {
    static hasMany = [orderItems: OrderItem]
    static belongsTo = [customer:Customer]
}

class OrderItem {
    static belongsTo = [order:Order]
}

Как мне убедиться, что Заказы являются собственной коллекцией и не встроены в Клиента?Если это значение по умолчанию, как мне убедиться, что OrderItems встроены в Order, а не в его собственную коллекцию?Что здесь по умолчанию?

Спасибо.

1 Ответ

10 голосов
/ 29 апреля 2011

Из прочтения документации Grails MongoDB Plugin кажется, что вам нужно специально объявлять внедренные объекты со ссылками по умолчанию.

Имея это в виду, если вы хотите убедиться, что Orders являются собственной коллекцией, а OrderItems должны быть встроены, попробуйте следующее:

class Customer {
  List<Order> orders
}

class Order {
  List<OrderItem> orderItems
  static embedded = [ 'orderItems' ]
}

class OrderItems {
  // properties go here.   
}

Вот документация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...