0

我有一个 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)
        }
    }
4

2 回答 2

0

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

试试这个:

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

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

于 2012-05-15T15:32:18.873 回答
0

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

索拉布

于 2012-06-02T12:54:54.040 回答