gpt4 book ai didi

grails - 无法从列表中删除

转载 作者:行者123 更新时间:2023-12-02 15:33:57 25 4
gpt4 key购买 nike

我试图从具有许多关系的对象中删除对象。
用户有一个称为guest的对象,guest有一个有许多名为children的对象,如下所示:

class User {

transient springSecurityService

String username
String password
String email
boolean enabled
boolean accountExpired
boolean accountLocked
boolean passwordExpired
Guest guest
}

guest :
class Guest {

static hasMany = [children:Child]

static constraints = {
}
}

我使用以下添加子项:
User.guest.addToChildren(Child.get(params.id))

这工作得很好。但是,我无法执行以下操作:
User.guest.removeFromChildren(Child.get(params.id))

我也尝试过
Guest guest = User.guest
guest.removeFromChildren(Child.get(params.id))
guest.save(flush: true, failOnError: true)

没有成功。我还做了适当的检查,以确保子实例包含在guest中并且与之匹配
Child.get(params.id)

有任何想法吗?

最佳答案

问题的神秘之处在于您从哪里获得用户?可能是这是一个独立的实例,可能导致您的问题。我会尝试以下方法:

Guest guest = User.guest.merge()  // make sure Guest has a hibernate context
Child child = Child.get(params)
guest.removeFromChildren(child)
// don't believe what the docs tell you
// I always have to delete the instance I am removing
// from the collection
child.delete()

并在服务方法中执行此操作或将其与事务关闭一起包含。

关于grails - 无法从列表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14838247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com