Grails 属于 class

Grails belongsTo either class

我有一个抽象的、非领域的 class 工作:

abstract class Job {
    String jobId
    String jobName
    String jobNotes
}

然后我有这两个域classes任务和习惯,它们都继承了工作class:

class Task extends Job{
    Date deadline
    int completionTime
}

class Habit extends Job{
    Date rangeStart
    Date rangeEnd
}

现在任务和习惯都拥有一个或多个子任务。现在我的问题是我希望子任务属于任务或习惯,它们都是作业的子class。我尝试这样做,但没有成功:

class SubTask {
    static belongsTo = {motherJob : Job}
}

你能帮帮我吗?

这只是我的想法,但是 "belongsTo" 与关系数据库模型中的外键关系有关,而不是面向对象的 subclass/superclass 模型。

如果您出于设计原因需要子类共享相似的类型,您可以让它们实现类似 "JobBehaviour" 的接口。

抱歉,如果这不是您想要的。

在超类中使用它来生成不同的表:

static mapping = {
    tablePerHierarchy false
}

现在您可以在子类中自由使用FK了。