У меня есть 2 объекта домена с отношением "один ко многим". Просто как пример:
Class Author{
static hasMany = [posts: Post]
}
Class Post{
Author author
}
В базе данных таблица сообщений имеет поле с именем author_id. В моем приложении у меня есть куча идентификаторов авторов, которые я хочу связать с сообщениями. Я могу сделать это, сначала запросив базу данных для каждого автора, а затем вызвав author.addToPosts(post). Однако, поскольку у меня уже есть идентификаторы объектов автора, я должен иметь возможность просто напрямую установить post.authorId = authorId, чтобы создать ассоциацию (в любом случае это все, что делает Grails) и сократить количество запрашиваемых запросов вдвое.
В реальном приложении, которое я пишу, это сократит количество запросов, которые мне нужно сделать, примерно на 70%. Это критическое узкое место в приложении, и я не могу позволить себе низкую производительность SQL. Я могу легко написать оператор sql, который будет делать именно это, но я не могу понять, как получить Grails, чтобы я мог напрямую установить author_id для ручного создания ассоциации. В рельсах такая функциональность встроена в активную запись. Есть ли способ сделать это в Grails?