Возможно, вам придется использовать mappedBy , чтобы объяснить, как располагаются поля в Пользователь и Список. Вот пара доменов, которые я написал, которые позволяют пользователю создавать множество списков, но только один из них должен быть «основным». Существует несколько дополнительных ограничений, допускающих использование значений Nullable, поэтому вы можете использовать пользовательский интерфейс с поддержкой scaffolded, не вдаваясь в сценарий "курица с яйцом".
class User {
String name
FooList primaryList
static hasMany = [authoredLists: FooList]
static mappedBy = [primaryList: 'primaryOwner', authoredLists: 'author']
static constraints = {
primaryList nullable: true, unique: true
authoredLists nullable: true
}
String toString() { name }
}
Я назвал этот класс "FooList", чтобы избежать путаницы со стандартным классом List:
class FooList {
static belongsTo = [author: User, primaryOwner: User]
static constraints = {
primaryOwner nullable: true, display: false
}
}