删除项目后 hasMany 关联列表中为空

2023-12-13

有域对象:

 class Book {
      List<Picture> pictures
      static hasMany = [pictures:Picture]
      static mapping = {
        pictures lazy: false, cache: 'nonstrict-read-write'
      }
    }

有时,通过代码从列表中删除图片后,它会在图片列表中产生空项目。

..
book.refresh()
def pic = Picture.get(params.id)
subject.removeFromPictures(pic)
subject.save()

看起来,GORM 没有更新关联表中的索引字段。 我无法重现它,但我在生产服务器上得到了几次

我认为可能是二级缓存和并发修改的问题。如何预防呢?

Grails 2.4.5 玛丽亚数据库


我认为问题可能取决于您在类上设置的级联删除行为。 首先,调用后

subject.removeFromPictures(pic)
subject.save()

你必须打电话。

pic.delete()

但如果问题仍然存在,您可以使用 GORM 事件,以便在您的类中添加:

class Book {
...
...
def beforeUpdate(){
checkNulls()
}

def beforeValidate(){
checkNulls()
}

def checkNulls(){
pictures?.removeAll(null)
}

Ref: GORM活动

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

删除项目后 hasMany 关联列表中为空 的相关文章

  • 为什么在 HQL 中直接使用列名有时只能起作用?

    我有两个 HQL 查询用于快速而肮脏的单元测试 第一个看起来有点像这样 from Foo where SOME FOREIGN KEY 42 第二个看起来像这样 from Foo as foo inner join foo Bar as b
  • 如何升级 Hibernate 4.3 --> 5.2?

    我用 Google 搜索了一下 但没有看到任何将 Hibernate 升级到 5 2 的教程 我唯一能找到的是 http hibernate org search documentation migrate 5 0 http hiberna
  • 如何映射 Map

    I tried ManyToMany cascade CascadeType ALL Map
  • JPA:实现模型层次结构 - @MappedSuperclass 与 @Inheritance

    我正在使用 Play Framework 1 2 4PostgreSQL and JPA 我想要一个模型层次结构 并看到有一些替代方法可以做到这一点 我有一个基类 它是抽象的 和两个扩展该基类的具体类 当我想要有具体的类时 我不想保留这个基
  • Spring-Hibernate 使用多个数据源/数据库

    我正在开发一个使用 Spring MVC 3 和 Hibernate 的 Web 应用程序 我想为我的 Web 应用程序使用 2 个数据源 MySql 和 Oracle 数据库 我已经阅读了许多 spring hibernate 多数据源
  • 无法打开 JPA EntityManager 进行事务;嵌套异常是 javax.persistence.PersistenceException

    当我运行我的代码时 我收到此异常 com mysql jdbc exceptions jdbc4 CommunicationsException Communications link failure The last packet sen
  • Hibernate 4.2,双向@OneToOne 和@Id

    我正在尝试使用OneToOne添加可选数据的关系 ExtraData 到主类 MainItem 的所有实例ExtraData应该链接到一个实例MainItem 但并非所有实例MainItem需要有一个实例ExtraData 我主要对单向关系
  • 无法将 int 字段设置为空值

    我有这个int column Column length 4 private int contract owner id 我不需要为每个表行设置始终值 当我进行选择查询时 出现此异常 Can not set int field org en
  • Hibernate 中基本类型的 ArrayList

    我有一个关于整数数组列表或一般基本类型的问题 假设我正在设计一个 POS 程序 每种产品可能有多个价格 假设我可以用以下方式表示价格值ints 并在Product类我有领域ArrayList
  • 休眠查询计数

    有什么方法可以统计 Hibernate 在事务或线程中内部完成的查询数量吗 我研究了 Hibernate 拦截器 但不清楚应该重写哪些 API 来增加计数器 我的目标是建立一个警报 当某个请求的查询计数超过某个阈值时通知我 以便我可以根据需
  • Grails Spring Security 插件 - 修改登录用户的权限

    我有一个简单的 Grails 应用程序 安装了 Spring Security Core 插件并且工作正常 但是 我还没有找到任何解决方案来解决在安全上下文中更新登录用户权限的问题 我不是在谈论更新当前用户的详细信息 即 springSec
  • HQL 检查 @param 中传递的列表大小

    有办法检查吗util List尺寸 例如 它是否为空 我尝试了下面的查询 它生成了QuerySyntaxException有一条消息 is not mapped where filters IS EMPTY or d id in filte
  • 如何在 Tomcat7 中部署 Grails 3.0.1 war 文件?

    我怎样才能部署一个Grails 3 0 1Tomcat7 的非嵌入式版本中的 war 文件 我收到的只是一个空白页或 404 错误 我可以成功部署其他 war 文件 所以我知道这不是 Tomcat 的问题 我的版本以及我采取的步骤如下 Se
  • JPA/Hibernate 删除实体不工作

    我使用 Hibernate 的 JPA 接口 并且编写了一些简单的代码来从数据库加载实体 然后删除 删除 它 我对插入和更新实体的所有合并调用都运行良好 但是当我尝试删除实体时 Hibernate 不会将其从数据库中删除 也不会引发异常 我
  • JPA hashCode() / equals() 困境 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 曾经有过some https stackoverflow com questions 4762573 should embeddable jpa
  • 如何解决Spring Data JPA中的N+1问题?

    我使用 Spring Data JPA 作为持久层 并且面临 N 1 问题 我还使用规范 API 因为我发现很难解决 N 1 问题 请帮忙 Entity public class PopulationHealth Id private in
  • Hibernate 对于 Android 应用程序来说是一种杀伤力吗? [复制]

    这个问题在这里已经有答案了 我正在为我的 Android 应用程序寻找一个好的 ORM 乍一看似乎对于移动设备我更喜欢使用更简单的东西 问题是我只是在这里假设 没有真正的证据 所以我想我应该询问社区的意见 也许有人有过这样的经历 它是一个相
  • Grails - 没有方法签名适用于参数类型

    我从 Grails 开始 主要使用 Eclipse 插件 并且在 Grails 读取 Java src 文件时遇到了麻烦 无论是 bin 文件夹中的 jar 还是 src java 文件夹中的 Java 文件 我创建了一个示例 说明如何从控
  • 如果我在 Hibernate 中使用 JPA,我的项目应该有哪些依赖项?

    我使用 JPA 和 Hibernate 作为其实现 什么maven2依赖关系一need在我的项目中有吗 我相信您唯一需要的两件事是 hibernate 的实体管理器和 SLF4J 日志记录包之一 其他所有内容都应该作为依赖项引入
  • jpa2 CriteriaBuilder order by “ORDER BY 表达式必须出现在选择列表中”

    我正在写一个查询标准生成器 但无法添加order by子句 因为它随消息一起抛出错误ORDER BY 表达式必须出现在选择列表中这是我的实体 public class A Integer aId ManyToOne JoinColumn n

随机推荐

  • 如何获取 SSIS 脚本组件中的列值?

    在下面的代码中 我获取了列名称 但在中找不到 Value 属性输入栏 我还需要获取列的值 而不仅仅是名称 IDTSInput100 input ComponentMetaData InputCollection 0 IDTSVirtualI
  • VML 转 PNG/PDF (jsp)

    我已经使用 raphael js 在 Internet Explorer 8 中绘制了我的流程图 现在我想将我的绘图导出为图像文件 我找到了一些答案 但仍然困惑该怎么办 有人可以帮助我解决这个问题吗 示例代码会很棒 导出为 PNG 或 PD
  • Road to Ember 2.0 - 高级 Ember 应用程序结构反馈?

    我发现我正试图在一个特别波动的时期开始学习 Ember 最近的 Road to 2 0 博客文章帮助我明确了前进的方向 但我正在努力在高水平上验证我对 Ember 的方法 我想对人们的时间敏感 我的完整代码适合有兴趣提供更具体反馈的任何人
  • weka 中的 SMO 置信度测量

    我正在使用以下方法编写分类代码smoweka 类 但我还没有找到实例分类的置信度度量 当以下情况时 它总是返回 0 或 1distributionForInstance叫做 我要分为两个类 知道我怎样才能得到这个措施吗 谢谢 好吧 我想出了
  • 在 Notepad++ 中的匹配模式后添加新行

    我有一个 csv 文件 现在我需要以另一种形式导入它 我想在特定模式后有一个换行符 r n 所有模式看起来都是这样的 true or false int number between 0 and 100 decimal number wit
  • 从 PHP 函数内部创建全局变量

    我正在尝试定义动态变量 我为此使用了一个函数 但我不知道如何将新的 var 定义为全局变量 因为它从未在函数之前创建 那可能吗 Thanks edit 好的 这就是我构建的 有那么危险吗 function extract values ro
  • ActiveRecord 和 Postgresql 的枚举类型

    我正在关注这个tutorial从 SitePoint 将模型属性设置为 Enum 值 Rails 从 4 1 开始支持该值 我尝试添加季节枚举 而不是性别枚举 这是我遇到的问题schema db Could not dump table s
  • 如何更改 iOS 7 中未选中的选项卡栏项目颜色?

    在 iOS 7 之前我使用过 UITabBar appearance setTintColor UIColor redColor 但现在它只绘制选定的项目 我已经阅读了一些建议 但我不知道如何做到这一点 我也使用了这个 self tabBa
  • 如何使用 jQuery 设置电话号码格式

    我目前显示的电话号码如下2124771000 但是 我需要将数字格式化为更易于理解的形式 例如 212 477 1000 这是我目前的HTML p class phone 2124771000 p Simple http jsfiddle
  • 服务器发送的多个用户事件

    我正在尝试使用新的服务器发送事件 API 编写聊天程序 但是 我一直无法弄清楚如何向不同的用户发送不同的事件 由于所有代码都发生在一个 PHP 文件中 我不确定仅向每个用户发送某些事件的最佳方法 您能提供的任何帮助将不胜感激 我正在使用 P
  • java中如何在其他类中使用公共类中定义的变量?

    一个外行人关于变量定义和使用的问题 我需要制作一个 Java GUI 来获取用户的输入并将其存储在文本文件中 然而 这种写入必须在 Actionlistener 类内完成 即 用户单击按钮并创建并存储文本文件 这意味着我必须在一个类 公共类
  • 如何获取命令行属性来覆盖 Maven 属性

    我有一个 pom 文件 其中某些依赖项的版本号依赖于项目版本pom 文件设置中指定的属性 我可以通过命令行覆盖它吗 如果是这样 怎么办 这是一个很长的故事 我们目前正在将项目转移到 Maven 但还没有完全实现 有多个模块仍然不是使用 ma
  • 使 Silverlight 业务应用程序模板正常工作需要什么数据库?

    我一直在尝试运行 Silverlight 业务应用程序模板 但在尝试注册时失败 我有带有 MSSQLSERVER 实例的 SQL Express 并且定义了创建的标准 aspnetdb 错误是 Submit operation failed
  • 为什么 Console.Readline 没有按预期执行

    我有下面的代码可以使用 我这里遇到的问题是代码在 while 循环中运行 而不等待线路上的输入字符串临时 Console ReadLine 需要帮助了解原因以及如何修复 提前致谢 Banker s algorithm Implementat
  • python - networkx - 使用两个列表绘制不同颜色的节点

    我是 networkx 新手 需要一些帮助 我之前搜索过 但无法解决我的问题 我制作了一个 networkx graphviz 图像 使用列表作为节点的输入 并使用两列文件作为边缘 第二个文件包含第一个列表中的项目以及与节点大小相对应的值
  • 从哪里获取 Alchemyapi API 密钥?

    我正在做的是 Getting Started with AlchemyAPI Using Ruby Ruby 教程 但我似乎找不到我的 API 密钥 Source http www alchemyapi com developers get
  • 我如何在 Laravel 中需要 Composer 自动加载器?

    我要安装guzzlehttps github com guzzle guzzle 我阅读了参考资料 但我对这一部分感到困惑 从该教程中 要求需要 Composer 自动加载器 所以似乎需要添加require vendor autoload
  • C# JSON 中的未包装属性

    我需要反序列化这个 JSON user id 0 resource id 0 resource name file xml 对于这个类 public class Resource public ResourceId ResourceId g
  • Windows 8 / Metro UI 中文本框下的自动完成框

    我想使用 C XAML 在 Windows 8 UI Metro UI 应用程序中的文本框中实现自动完成 目前 当软 触摸键盘显示时 它会遮挡自动完成框 但是 在文本框焦点上 Windows 8 会自动向上滚动整个视图并确保文本框处于焦点位
  • 删除项目后 hasMany 关联列表中为空

    有域对象 class Book List