每个子类域继承的表中的完整性引用

时间:2014-11-14 13:09:14

标签: mysql grails inheritance gorm

我在GORM中使用tablePerSubclass继承选项遇到了奇怪的行为(grails 2.4.3)

拥有一个超类域项

class Item {

    static mapping = {
        tablePerHierarchy false
    }
}

和一个子类,让我们说Book

class Book extends Item {
    String      name           
    String      description   
}

我在MySQL中得到两个表:Item和Book,当我保存Book项目时,我可以看到Item表中的条目。然后我删除Books表中的元素,但Item表仍然有引用!!

这怎么可能?

1 个答案:

答案 0 :(得分:0)

在此环境中,当子表中删除记录时,grails会尝试删除父表中的条目。然而,这似乎是在不同的事务中完成的,因此如果第二次删除失败,那么grails将无法恢复到一致的状态。