如何在Grails中链接两个域类而不将删除级联从一个到另一个?我有两个相关的域,但其中一个本质上不优于另一个域。这基本上就是这个想法:
class Project{
static hasMany = [workers:Employe]
}
class Employe{
static hasMany = [jobs:Project]
}
如果关闭某个项目,则不应删除所有工作人员,如果一个工作人员退出工作,也不应删除。
答案 0 :(得分:1)
您可以拆分域名:
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对象而不影响其他类。