grails removeFrom一次只删除一个

时间:2012-05-15 10:41:56

标签: grails

我有一个grails应用程序,我有联系人属于另一个域contactGroup。除了removeFromContacts方法之外,它似乎都工作正常。我正在使用以下代码。代码正常工作,但一次只从组中删除一个联系人。我甚至做了一些调试,foreach循环运行的次数与联系人提供的次数相同。没有错误消息。知道可能出现什么问题 -

    ContactGroup group = ContactGroup.findByIdAndOwner(params.groupId, user)

    def contactIds = request.JSON.data.contact
    contactIds.each {
        Contact contact = Contact.findByContactIdAndOwner(it.contactId, user)
        if(contact) {
            group.removeFromContacts(contact)
        }
    }

2 个答案:

答案 0 :(得分:0)

如果关联是延迟加载而不是“真实”实例,我已经阅读了有关findAll方法加载代理的一些内容。

试试这个:

    group.removeFromContacts(Contact.get(contact.id))

'get'应该绕过代理并使用“真实”实例。有一个JIRA谈论这个(Grails-5804)。根据JIRA(来自Burt Beckwith)的整体修复是在Contact类中实现equals和hashCode方法。

答案 1 :(得分:0)

感谢您的支持。我意识到我没有正确地定义域级别的关系,而是搞乱了整个事情。当我纠正它正常工作时。

SAURABH