当前位置: 首页 > 面试题库 >

Hibernate并删除所有

夏侯旻
2023-03-14
问题内容

在Hibernate中删除表中所有行 的最佳方法是什么?

如果我遍历一个集合并称session.delete()其在我所知范围内没有执行。

如果使用其他选项session.createQuery("delete ..."),则不会影响持久性上下文。

如果没有更好的选择,何时应该使用这些方法?


问题答案:
  • 如果没有什么要层叠的,请使用HQL删除 DELETE FROM enityName
  • 如果您有层叠,请迭代该集合并分别删除每个集合。

问题出在以下事实:hibernate在内部处理级联,而不是将其留给数据库。因此,发送查询不会触发内部级联,因此您将遇到不一致/孤立的情况。

如果性能是如此关键(毕竟并不是每天都会将一个表删减),那么对于每个级联,您可以删除多个HQL-即手动处理级联。



 类似资料:
  • 问题内容: 在Hibernate中删除表中所有行 的最佳方法是什么? 如果我遍历一个集合并称其在我所知范围内没有执行。 如果使用其他选项,则不会影响持久性上下文。 如果没有更好的选择,何时应该使用这些方法? 问题答案: 如果没有什么要层叠的,请使用HQL删除 如果您有层叠,请迭代该集合并分别删除每个集合。 问题出在以下事实:休眠在内部处理级联,而不是将其留给数据库。因此,发送查询不会触发内部级联,

  • 问题内容: 当我尝试从数据库中删除条目时,使用 然后我可以执行以下操作: 1)如果该行存在于数据库中,则将执行两个SQL查询:一个选择,然后一个删除 2)如果数据库中不存在该行,则仅执行选择查询 但是同样,更新不是这种情况。无论是否存在数据库行,都只会执行更新查询。 请让我知道为什么这种行为用于删除操作。这不是性能问题,因为遇到了两个查询而不是一个查询? 编辑: 我正在使用hibernate3.2

  • 我有两个具有一个任意关系的表 类ServiceProvider{ ... @OneTomany(Fetch=FetchType.Eager,MappedBy=“ServiceProvider”,Cascade={CascadeType.All,CascadeType.Remove},OlphanRemove=true)@OnDelete(action=OnDeleteAction.Cascade)

  • 我正在尝试使用 Jsoup 删除 HTML 页面标记之间的所有文本 例如,如果输入HTML是 输出应该是 基本上,我想删除返回的内容。 我找到了很多相反的帖子,只保留文本,但没有解决我的问题。知道怎么做吗? 编辑 maverick9999:https://stackoverflow.com/a/24292349/3589481提出的解决方案将解决大部分情况。 然而,正如评论中提到的,这个解决方案也

  • 问题内容: 我有的: 有什么问题: 问题是,在会话关闭后,我无法拉动惰性收集。但是我也无法在 proceed 方法中关闭会话。 什么解决方案(粗略解决方案): a)在会话关闭之前,强制hibernate以拉动惰性集合 .... b)也许更轻松的方法是使用注释 题: 什么是最佳做法/常见方式/更轻松的方式?意味着将我的对象转换为JSON。 问题答案: 在内部使用初始化惰性对象。 现在,在Transa

  • 问题内容: 我以为那不是难事,但我想用String.replaceAll删除所有空行(或Java中仅包含空白和制表符的行)。 我的正则表达式如下所示: 但这是行不通的。 我环顾四周,但仅发现用于删除空白行而不包含空格或制表符的正则表达式。 问题答案: 试试这个: 请注意,正则表达式匹配空格,制表符或管道字符! 编辑 顺便说一句,正则表达式也可以解决问题。