Grails属于任何一个类

时间:2015-04-20 23:43:43

标签: grails

我有一个抽象的,非域类的Job:

abstract class Job {
    String jobId
    String jobName
    String jobNotes
}

然后我有两个域类Task和Habit,它们都继承了Job类:

class Task extends Job{
    Date deadline
    int completionTime
}

class Habit extends Job{
    Date rangeStart
    Date rangeEnd
}

现在,任务和习惯都拥有一个或多个子任务。现在我的问题是我希望SubTasks属于Task或Habit,它们都是Job的子类。我试过这样做,但没有工作:

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

你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

这只是我的头脑,但是"属于"与关系数据库模型中的外键关系相比,它更多地与面向对象的子类/超类模型有关。

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

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

答案 1 :(得分:0)

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

static mapping = {
    tablePerHierarchy false
}

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