合并两个域对象,并在Grails中将子对象重新分配给其中的一个
||
我要合并的域实体中有两个条目。我们将其称为“父母之屋”和“孩子之屋”。我遇到一种情况,我想合并两个实际上相同的众议院域。我有执行此顶级合并的逻辑。
但是,我想知道Grails中是否有一种方法可以轻松地说出“遍历域对象,并且在有指向House的fk指针的任何地方,将该fk更新为新值”。
该代码将是这样的
houseInst1.magicMerge(houseInst2)
这将运行House合并,并检查每个具有指向House的指针(fk)的域对象,并更新其指向houseInst2的位置(最初指向houseInst1)。
更新:一个主要功能是,如果有人添加另一个具有指向主对象链接的域对象,我希望此方法可以正常工作。例如。如果以后有人添加抵押贷款,我不想更新所有合并逻辑,那么它应该去发现抵押贷款是House的孩子,然后进行相应的更新。
没有找到相关结果
已邀请:
2 个回复
抽法
方法,但这做了一些完全不同的事情:它将一个(可能是分离的)对象合并回到持久化上下文中。 我不知道任何内置功能可以像您所描述的那样合并两个对象。我认为您需要像Gregg的答案中一样手动更新外键。进行更新的更有效方法是通过HQL,如下所示:
编辑:要自动更新所有关联,可以询问人工制品:
械怒等
我还没有尝试过,我假设房屋和房间之间有一个非常标准的OneToMany关系。