Каскадное удаление происходит из-за отношений belongsTo
между классами вашего домена.
Начиная с Committee belongsTo Board
, когда Правление удаляется, удаление каскадируется в Комитет.Начиная с User belongsTo Committee
, когда Комитет удаляется, удаление распространяется на Пользователя.
Решение вашей проблемы состоит в удалении отношения User belongsTo Committee
.
Примечания к вашемуМодель предметной области в целом:
У вас много отношений «многие ко многим».Они не обязательно ошибаются, но могут усложнять ситуацию.Вы могли бы, вероятно, сойти с рук, просто используя:
class Committee {
static hasMany = [boards: Board, users: User]
}
class Board {
static hasMany = [users: User]
static belongsTo = Committee // this is the only belongsTo you need, since if a
// committee is dissolved, presumably the board
// will be dissolved as well (unless you have
// cross-committee boards)
}
class User {
// doesn't define any relationships,
// let the Committee/Board domains handle everything
// also, this is presuming that users are at a higher level than committees, i.e.
// a user could belong to multiple committees
}