Здесь я столкнулся с необычной проблемой. Все должно работать в моем понимании (как начинающий Grails), но не работает: (
У меня есть домен класса User. У пользователя может быть много друзей и много друзей-запросов. В доменном классе есть функция для отправки запроса друга другому пользователю. вот код из домена пользователя -
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, который я передаю как параметр, устанавливается как отправитель!
Может кто-нибудь объяснить, чего мне не хватает?