Это мой первый проект со связями многие ко многим, и после прочтения некоторых материалов Gram в ORM, я решил позволить grails делать всю работу за меня, например, создавать таблицы.На самом деле моя сделка заключалась в следующем:
- 1 У пользователя много групп
- 1 Группа принадлежит пользователю и имеет много пользователей (кроме владельца)
Вот мои уроки:
class User {
String name
List groups
static hasMany = [groups : Group]
static mapping = {
table 'users'
version false
}
}
class Group {
String name
List members
static belongsTo = User
static hasMany = [members : User]
static mapping = {
table 'groups'
version false
}
}
После этого я получил 3 таблицы из Грааля.Таблица users была в порядке, но следующие 2 оказались не такими, как я ожидал.
table **groups** | id | name
table **users_groups** | group_id | user_id | members_idx | groups_idx
Ну, я хотел что-то вроде этого:
table **groups** | id | name | user_id
table **users_groups** | group_id | members_idx | groups_idx
Я не знаю, сделал ли я что-то не так или как я могу это исправить, но в любом случае ... У меня все еще возникает другая проблема, когда я пытаюсь сделать user.addToGroups (new Group ()) ,Моя таблица users_groups дублирует этот регистр, один с нулевым members_idx, а другой регистр с null groups_idx.