Grails - 具有级联删除的同一类的多个belongsTo

2023-12-26

这是针对 Grails 用户的。我在 grails - 用户邮件列表上询问过这个问题,但我想既然我已经为此奋斗了几天,我应该撒尽可能广的网。

我在尝试建模两个人之间的关系时遇到一些困难 另一个对象(不同类型)中相同类型的对象引用 两个物体。

作为我想做的一个例子,假设 你正在模拟家庭成员之间的关系。任何给定的关系 “属于”两个不同的家庭成员。所以:

class Person {
   hasMany[relationships: Relationship]

   static mappedBy = [relationships:'p1', relationships:'p2']
}

class Relationship {

   Person p1
   Person p2
   String natureOfRelationship // for example, "cousins"

   static belongsTo = [p1: Person, p2: Person]
}

这里的意图是,如果 p1 或 p2 被删除,那么删除将 级联到 hasMany 映射中的所有关系对象。相反,每次 我尝试了一下,结果出现了外键违规。我尝试使用 文档中介绍的“cascade”属性:

http://grails.org/doc/1.0.x/guide/single.html#5.5.2.9%20 Custom%20 Cascade%20 行为 http://grails.org/doc/1.0.x/guide/single.html#5.5.2.9%20Custom%20Cascade%20Behaviour

所以我想我应该将其添加到 Person 类中:

static mapping = {
    relationships cascade:'delete'
}

我也没有任何运气。

我还查看了 Grails 生成的 devDB.script 文件,看看它是如何实现的 正在设置关系上的外键。如果我手动添加“ON DELETE CASCADE”到两个外键约束,那么它工作正常,但是 显然对自动生成的数据库脚本进行手动编辑 不是最强大的解决方案。理想情况下我希望能够指定 使用 GORM 的行为。

那么我最好的选择是什么?有没有办法强制级联删除 多个外键/所有者?我需要手动执行此操作吗 onDelete 对 Person 执行操作?我需要进入 Hibernate 配置吗 这个,或者我可以在 Grails/GORM 中以某种方式做到这一点吗?

非常感谢您抽出宝贵时间并提供任何帮助。


您可以添加一个删除前 http://grails.org/GORM+-+Events挂钩到 Person 类并查询另一个父类。如果另一个父级不存在,您可以删除该关系。请注意,您遇到了外键违规,因为您可能需要删除父母双方,因为该关系对他们两个都有 FK。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Grails - 具有级联删除的同一类的多个belongsTo 的相关文章

随机推荐

  • 用随机字符替换字符串中的每个数字

    我想替换字符串中的每个数字 例如ABC123EFG与另一个随机字符 我的想法是生成一个随机字符串 其中包含所有数字的数量 str并将每个数字替换为 array count of the digit 有没有办法在没有 for 循环的情况下做到
  • 如何获取 3,200 条推文(Twitter API 1.1)

    经过大量的尝试和错误 我终于成功地使用 Twitter 的新 API 版本 1 1 获取推文 我正在使用 PHP TwitterOauth 库 尽管我能够获取推文 但有两件事我不明白 statuses user timeline 的限制是
  • ES5 |何时使用 null 以及何时使用 undefined [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript null 或未定义 https stackoverflow com questions 6429225 javascript null or undefined null是保留字
  • php 卷曲问题

    我正在尝试使用curl 获取远程文件的信息 问题是其他 Web 服务器位于端口 81 上 正如你所看到的 它不起作用 如果在 URI 中指定端口号会发生什么 我的意思是首先删除CURLOPT PO
  • 如何在 keycloak 中设置 CORS 配置以允许 ajax 请求?

    我正在尝试使用 keycloak 作为身份验证服务器 我尝试通过 ajax 请求获取令牌 它在卷曲中效果很好 但由于 CORS 而在我的角度中效果不佳 我已将客户端设置为 直接访问授予启用 为 true 并且已将 添加到 Web Origi
  • 替换特殊字符的问题

    我在从字符串中删除特殊字符时遇到问题 我使用了以下代码 但是没有作用 请建议我更好的逻辑 NSString trimmedReciString NSString stringName NSCharacterSet myCharSet NSC
  • Farbtastic 颜色选择器需要帮助。包含简单的 html 示例

    我已经包含了一个非常简单的 html 示例 几乎可以工作 这是这个出色的颜色选择器的非常简单的实现 但它并不像广告中所说的那样有效 我只得到一个蓝色盒子 我可以选择蓝色色调 但不是渐变或外环 等待 我刚刚意识到外环在那里 我可以用它改变颜色
  • NodeJS 内存消耗统计问题 - 巨大的 RSS 和外部内存使用情况

    在对 Node 项目进行性能测试时 我遇到了一些内存报告 这些报告在性能和内存泄漏方面的解释有点令人困惑 背景 所以我使用生成的报告进程 内存使用 https nodejs org api process html process proc
  • 如何使用 JQuery Wrapper 添加简单的图像超链接

    我不是编码员 我需要一个简单的解决方案来将 html 文档中的超链接添加到 jQuery 图像 以下内容不起作用 所以我想它比以下内容更复杂 div class slider wrapper div class slider ul clas
  • 如何在 Mongo C# 驱动程序中使用自动增量字段而不使用 eval?

    我正在使用所讨论的自动增量字段here https www tutorialspoint com mongodb mongodb autoincrement sequence htm 我可以在 Mongo Console 中执行这个示例 但
  • 是否可以在没有 GUI 的情况下运行 selenium (Firefox) Web 驱动程序?

    我们正在考虑从 Ubuntu 升级我们的生产服务器 desktop10 04 到 Ubuntu server 12 04 我们当前的桌面操作系统上运行着各种服务 例如 Selenium Web Driver 我的问题是 Selenium W
  • 如何在通知中重新打开活动单击我的android

    我正在开发一个应用程序 用户可以在登录活动中登录 登录用户可以在仪表板活动中查看他们的评论 如果服务器中有任何新评论 它会推送通知 一切都运行完美除了一件事 即当用户单击通知时 如果仪表板活动也位于前面 则每次都会打开一个新的仪表板活动 我
  • 如何确定 zurbs Foundation 的 sass 版本中的间距宽度

    应该比较简单 我无法安静地弄清楚 我有这个 parent include grid row main include grid column 8 sidebar include grid column 4 元素 main 和 sidebar
  • 使用哪种 HTTP 方法下载文件?

    在我的网站中 用户可以下载他们的文件 但文件是使用 PHP 生成的 那么我应该使用什么 HTTP 方法来发送作为文件附件的下载请求呢 获取还是发布 GET 用于被动检索文件 POST 用于altering服务器上的信息 这是从客户端来看的
  • ActiveSupport::MessageVerifier::InvalidSignature

    我正在尝试创建一个表单 用户可以在其中编辑现有视频标题和说明 发送 PATCH 请求时 出现以下错误 StackOverflow 上的另一篇文章说 如果发送字符串而不是对象 则会导致错误 但当我控制台记录它时 我看到一个对象 有什么想法吗
  • Socket.Poll 在不同机器上的延迟差异很大

    我继承了一个使用套接字的 net 2 0 客户端应用程序 服务器在 iSeries 上运行 我的计算机尝试使用客户端应用程序但遇到延迟 在遇到 滞后 的计算机上 我确定 Socket Poll 方法花费的时间更长 我认为 我是这样知道的 M
  • 哪个 OJDBC 驱动程序适用于 Java 6?

    我们当前使用的是 ojdbc14 jar 我们应该使用 ojdbc6 jar 吗 更新 正在使用Oracle 10g 如果您使用 java6 则可以 并且应该 使用 ojdbc6 jar 如果它与您的数据库兼容 资源 oracle com
  • 替换照片中除现有黑白像素之外的所有颜色

    我想要一种将照片的所有像素更改为白色的方法 除了照片中已有的白色或黑色像素之外 我尝试使用 PIL 但找不到它 我想要将照片的所有像素更改为白色的方法 除了照片中已经存在的白色或黑色像素 所以基本上你想将除黑色之外的所有像素更改为白色 对吧
  • SQL Server:存储过程变得非常慢,原始 SQL 查询仍然非常快

    我们正在努力解决一个奇怪的问题 当原始 SQL 执行得相当快时 存储过程变得非常慢 我们有 SQL Server 2008 R2 Express Edition SP1 10 50 2500 0 其中包含多个数据库 一个数据库 大小约为 7
  • Grails - 具有级联删除的同一类的多个belongsTo

    这是针对 Grails 用户的 我在 grails 用户邮件列表上询问过这个问题 但我想既然我已经为此奋斗了几天 我应该撒尽可能广的网 我在尝试建模两个人之间的关系时遇到一些困难 另一个对象 不同类型 中相同类型的对象引用 两个物体 作为我