MongoDB Grails GORM неожиданное поведение с hasMany / ownTo
Контекст: я использую плагин mongodb, хотя это может не иметь к этому никакого отношения.
Допустим, у меня есть два класса домена, Foo и Bar, где Foo имеет Many Bar и Bar принадлежит Foo:
class Foo {
static hasMany = [bar:Bar]
}
class Bar {
static belongsTo = [foo:Foo]
}
Я ожидаю, что будет храниться коллекция (или таблица) для Foo, коллекция для Bar и коллекция FooBar, которая обрабатывает сопоставления. Вместо этого я получаю коллекцию Foo и коллекцию Bar, где у Bar есть клавиша "foo". Похоже, что то, что происходит, будет ожидаемым результатом только добавления принадлежности, но без использования hasMany...
А) Мои ожидания просто неверны, и что происходит, это ожидаемый результат? Б) Если нет А, нужно ли что-то особенное, чтобы это соответствовало моим ожиданиям?
Мысли?
1 ответ
Поскольку мы знаем, что mongodb - это не реляционная база данных, поэтому все происходит правильно, она не создает третью таблицу или коллекцию для обработки, имеет много, но, так как вы используете плагин mongodb, вы можете запросить его, как есть, с Many / assignTo как правило, использовать с MySQL. В вашем случае структура db для foo будет выглядеть так:
{ "_id" : NumberLong(1), "version" : 0 }
и для бара будет:
{ "_id" : NumberLong(1), "foo" : NumberLong(1), "version" : 0 }
И это обеспечит вас, так как это каскадное удаление от родителя к ребенку, как в случае использования mysql
Надеюсь, поможет:)