3

我在Grails的GORM部分遇到了一些问题。我正在使用Grails 1.3.4和H2。如何覆盖Grails GORM中关系的级联删除?

在数据库中我有两个表模板报告。在GORM级别,我有两个Domain类TemplateReport;

class Template { 

static hasMany = [reports: Report] 

... 
} 

class Report { 

static belongsTo = [template: Template] 

... 
} 

默认行为似乎是,当一个Template被删除,删除将被级联,使所有Report s表示它已经将被删除。 在数据库级别上,我尝试使template_id列中的报告 -table成为ON DELETE SET NULL外键,但这不起作用。

是否有一些方法可以覆盖级联删除?

回答

6

下应在Template类添加:

static mapping = { 
    reports cascade: 'none' 
} 

能够毫无问题删除Template S,这除了Report类也是必要的:

static constraints = { 
    template(nullable: true) 
}