【问题标题】:Grails: Delete relation DomainGrails:删除关系域
【发布时间】:2013-05-14 10:22:02
【问题描述】:

我想问一下我的项目。 我有两个这样的域

【问题讨论】:

    标签: grails controller relational-database


    【解决方案1】:

    我建议您查看GORM documentation。你有一些方法来声明你的类之间的关系,并且根据它们,删除将是级联的。

    "6.3.3 Understanding Cascading Updates and Deletes" 中解释了此行为。

    无论是一对一、一对多还是多对多,定义 belongsTo 将导致更新从拥有的类级联到 它的依赖(关系的另一方),并且对于 多/一对一和一对多关系删除也将 级联。

    因此您应该考虑声明hasManybelongsTo,以启用级联删除。

    【讨论】:

      【解决方案2】:
      class User {
          // Group details should not be referenced here
      }
      class Group {
        String Name
        String Description
        GroupDetails gd
      }
      
      class GroupDetails {
          User user
          static belongsTo = [group:Group]
      }
      

      在这种情况下,如果 Group 将有一个子 GroupDetails,那么当您删除 Group 时,子实体也将被删除。

      查看 grails 文档中的第一个示例:http://grails.org/doc/2.2.x/ref/Domain%20Classes/belongsTo.html

      与 Sérgio Michels 一样,还有更多方法可以让它发挥作用。

      示例:https://github.com/aprudnikovas/testGrailsOneToOneCascade

      【讨论】:

      • 我已经将关系添加到我的域中:class GroupDetails { User user static belongsTo = [group:Group] } 但是当我尝试删除时,它会出现这样的错误:Row was updated or deleted by另一笔交易(或未保存的值映射不正确):
      • 抱歉的小错误:刚刚修复了belongTo->belongsTo
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-22
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多