Java 休眠:重新插入一个具有相同ID的已删除行

Java 休眠:重新插入一个具有相同ID的已删除行,java,hibernate,Java,Hibernate,我的用例: 我的Hibernate配置使用插入的自动增量生成器,我不想更改它 一个用户删除了一个ID为10的对象,我将这个删除的对象保存到某个地方 稍后,用户决定使用相同的ID:10还原此已删除对象 由于ID为10的对象已从数据库中删除,在使用自动增量生成器进行Hibernate配置时,如何使用Hibernate将其插入数据库中(请记住:我需要在数据库中为该对象保留相同的ID) 谢谢 如果你不更换发电机,我怀疑Hibernate会不会让你这么做。插入它,然后用direct SQL更新它,并使任何

我的用例:

  • 我的Hibernate配置使用插入的自动增量生成器,我不想更改它
  • 一个用户删除了一个ID为10的对象,我将这个删除的对象保存到某个地方
  • 稍后,用户决定使用相同的ID:10还原此已删除对象
  • 由于ID为10的对象已从数据库中删除,在使用自动增量生成器进行Hibernate配置时,如何使用Hibernate将其插入数据库中(请记住:我需要在数据库中为该对象保留相同的ID)
  • 谢谢


    如果你不更换发电机,我怀疑Hibernate会不会让你这么做。插入它,然后用direct SQL更新它,并使任何hibernate缓存无效,怎么样?

    我怀疑hibernate不允许您这样做。但是,您可以编写sql查询来更新表[如果您使用了Table Generator]来更改可以使用的当前索引位置,但这将是一个非常复杂的逻辑,因为您将始终必须跟踪哪些索引记录不存在

    可能重复?我知道这不是您所要求的,您可能有充分的理由需要该主键值,但是:不要设计代码,使其依赖于数据库中具有给定主键值的对象/行。(静态标识表除外。)在上述情况下,如果可能的话,我会尝试设计代码,以便使用新键重新创建对象,“用户”获得新键。似乎没有Hibernate方法(不是直接sql方法)。无论如何谢谢你的帮助。