grails - 如何覆盖 Grails GORM 中关系的级联删除?

标签 grails relational-database grails-orm foreign-key-relationship h2

我在使用 Grails 的 GORM 部分时遇到一些问题。我正在使用 Grails 1.3.4 和 H2。

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

class Template {

static hasMany = [reports: Report]

...
}

class Report {

static belongsTo = [template: Template]

...
}

默认行为似乎是,当删除Template时,删除操作将被级联,以便它拥有的所有Report也将被删除。 在数据库级别,我尝试将 report 表中的 template_id 列设置为 ON DELETE SET NULL 外键,但这并没有不起作用。

有什么方法可以覆盖级联删除吗?

最佳答案

应在 Template 类中添加以下内容:

static mapping = {
  reports cascade: 'none'
}

为了能够毫无问题地删除 Template,向 Report 类添加此内容也是必要的:

static constraints = {
  template(nullable: true)
}

关于grails - 如何覆盖 Grails GORM 中关系的级联删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4131174/

相关文章:

grails - 扩展Spring Security UI插件(以及一般的插件)

database - 在数据库中存储类别

ruby-on-rails - 有效存储和处理客户端日志的数据库

mysql - 连接来自同一个表的多个 Sql 语句

grails - Gorm : how to set datatype of a value in a Map

hibernate - 从Grails中的Hibernate Event监听器获取调用操作和操作的参数

grails - 如何将浏览器中 View 的URL映射到一个特定名称?

spring - 如何验证 birt 报告引擎请求

grails - 如何优化Grails中的select属性?

hibernate - 限制 Hibernate 查询中的输出数量