我有一个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)
}
}
答案 0 :(得分:0)
如果关联是延迟加载而不是“真实”实例,我已经阅读了有关findAll方法加载代理的一些内容。
试试这个:
group.removeFromContacts(Contact.get(contact.id))
'get'应该绕过代理并使用“真实”实例。有一个JIRA谈论这个(Grails-5804)。根据JIRA(来自Burt Beckwith)的整体修复是在Contact类中实现equals和hashCode方法。
答案 1 :(得分:0)
感谢您的支持。我意识到我没有正确地定义域级别的关系,而是搞乱了整个事情。当我纠正它正常工作时。
SAURABH