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) 
}