Возможно, здесь я ошибаюсь, но, похоже, это невозможно. Причина состоит в том, что таблица user_user
не поддерживает прямой домен, поскольку она представляет собой только взаимосвязь между доменами, а не самим доменом.
Один из вариантов заключается в управлении отношения в классе картографа, очень нравится, как Spring Security Core PersonAuthority class
class Friendship implements Serializable {
User user //may need some mappedBy config in User class
User friend
Date lastUpdated
... //helper methods, see PersonAuthority class for example
static mapping = {
id composite: ['user', 'friend']
version false
}
}
И так как это фактический класс домена, вы можете включать в себя дополнительные атрибуты, как ваш lastUpdated
.
UPDATE для комментариев: Вы должны действительно проверить PersonAuthority class для примера - вам не нужно явно объявлять какие-либо отношения в классе пользователя, поскольку теперь они управляются Дружбу. Вы можете добавить вспомогательные методы в классе User для запроса Дружбы для отношений.
Например:
class User ...
...
Set<User> getFriends() {
Friendship.findAllByUser(this).collect { it.friend } as Set
}
}
что я должен делать в пользовательском классе? – confile
Как сделать сопоставление в классе User? – confile