gpt4 book ai didi

grails - 如何让Grails接受可以为null的belongsTo关系?

转载 作者:行者123 更新时间:2023-12-02 14:46:47 25 4
gpt4 key购买 nike

我想做的是有两个互相引用的域。但是,一个不一定拥有另一个或属于另一个。两个域中的每个对象都可以引用另一个域中的0或1个对象。

我有此代码,但它不起作用:

class Domain1{

//declare some vars
...

static belongsTo = [domain2Object:Domain2]

static constraints = {
domain2Object(nullable:true)
}
}

将hasOne与nullable:true约束一起使用是有效的,但是如果另一端具有相同的功能,则它将无效。关键是我希望能够从另一个域中引用另一个域中的某个对象的任何域中删除任何对象,而不会导致所引用的对象也被删除。因此,就像我说的,没有对象属于另一个对象,它们只是互相引用。

=================================================== =======================================
响应:

在两个域类中都使用此方法:
class ClassB {
static hasOne = [classA:ClassA]

def beforeDelete = {
classA?.delete()
}
}

static constraints = {
classA(nullable:true)
}

当我尝试添加两个类中的任何一个对象而另一个类为空时,出现此错误:

“违反完整性约束-没有父FK24742AC1AA048190表:PENDINGORDER”

最佳答案

您可以使用“hasOne” onDelete事件。

class ClassB {
static hasOne = [classA:ClassA]

def beforeDelete = {
classA?.delete()
}
}

Events and Auto Timestamping

我猜发生了异常,因为您正在尝试通过beforeDelete事件中的对象关系删除对象。删除您的关系,然后再像这样删除它:
class ClassA {
ClassB classB

static constraints = {
classB nullable: true
}
}

class ClassB {
ClassA classA

static constraints = {
classA nullable: true
}

def beforeDelete = {
classA?.classB? = null
classA?.delete(flush:true)
}
}

关于grails - 如何让Grails接受可以为null的belongsTo关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7988511/

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