使用hibernate删除多个记录

使用hibernate删除多个记录,hibernate,orm,Hibernate,Orm,使用hibernate删除多个记录的最佳方法是什么。我的要求是获得UUID列表,并基于此需要从数据库中删除所有记录 因为hibernate没有任何内置的delete方法,它可以将集合作为输入并代表我们完成工作 因此,我正在寻找实现这一目标的最佳途径。 我不会选择批量删除选项,因为记录的数量不会太高,我们也不会使用支持这种类型操作的Spring模板 提前谢谢 乌梅什想到两个选项: 获取所有记录并调用会话。删除每个实体上的(..) 与WHERE子句一起使用。但请记住,级联不会被处理 我已经想到了第

使用hibernate删除多个记录的最佳方法是什么。我的要求是获得UUID列表,并基于此需要从数据库中删除所有记录

因为hibernate没有任何内置的delete方法,它可以将集合作为输入并代表我们完成工作

因此,我正在寻找实现这一目标的最佳途径。 我不会选择批量删除选项,因为记录的数量不会太高,我们也不会使用支持这种类型操作的Spring模板

提前谢谢
乌梅什

想到两个选项:

  • 获取所有记录并调用会话。删除每个实体上的(..)
  • 与WHERE子句一起使用。但请记住,级联不会被处理

我已经想到了第一个选项,而第二个选项是可能的,因为我需要删除的表是独立的,并且没有任何关系。我在想一些东西session.createQuery()然后将列表设置为参数,但不确定这是否是正确的方法?您可以在第一个解决方案中使用Session.load,以避免仅为了删除实体而发出任何select查询。对于第二种解决方案,请确保不要在查询的in子句中放置太多ID。例如,Oracle将它们限制为1000个。@umesh awasthi如果您没有任何关系,则使用
createQuery()
和DELETE是正确的方法。@JB:根据我的预期,ID数量在同一时间不会超过40-50个(即使这是最大值)