繁体   English   中英

在不级联删除的情况下链接Grails中的域对象

[英]Link Domain Objects in Grails without cascading deletes

如何在Grails中链接两个域类而又不使删除级联到另一个? 我有两个相关的领域,但一个领域在本质上并不优于另一个领域。 基本上是这样的想法:

class Project{
    static hasMany = [workers:Employe]
}


class Employe{
    static hasMany = [jobs:Project]
}

如果某个项目被关闭,则不应删除所有工作人员,并且如果一个工人辞职,也不应删除该工作人员。

您可以拆分域:

class Project{

   def getWorkers() {  
    EmployeeProject.findAll("from EmployeeProject as e where e.project.id=?", [this?.id], [cache: true])
   }
}

class Employee {

    def getProjects() {
      EmployeeProject.findAll("from EmployeeProject as ep where ep.employee.id=?", [this?.id], [cache: true])
   }
}

class EmployeeProject {    
  Employee employee
  Project project   
}

然后,您可以只使用project.workers,employee.projects并删除EmployeeProject对象,而不会影响其他类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM