Здесь я столкнулся с необычной проблемой. Все должно работать в моем понимании (как новичок в grails), но не работает :(
У меня есть Пользователь класса домена. У пользователя может быть много друзей и много запросов в друзья. В классе домена есть функция для отправки запроса на добавление в друзья другому пользователю. вот код из пользовательского домена -
static hasMany = [friends: User, friendRequests: FriendRequest]
static mappedBy = [friendRequests:'receiver']
def sendFriendRequest(User toUser) {
if(!isFriend(toUser)) {
FriendRequest requestToSend = new FriendRequest(status:'pending', sender: this)
toUser.addToFriendRequests(requestToSend)
return true
}
return false
}
И класс FriendRequest -
class FriendRequest {
String status
User sender
static constraints = {
status(inList:["accepted", "pending", "rejected"])
}
static belongsTo = [receiver:User]
}
Теперь проблема в том, что я ожидаю, что текущий объект User, из которого я запускаю функцию, будет установлен как отправитель friendRequest. Но, как ни странно, toUser, который я передаю как параметр, устанавливается как отправитель!
Может ли кто-нибудь объяснить, что мне не хватает?