Jpa 自动生成的ID会在em.remove()后面跟着em.merge或em.persist之后按顺序创建间隙

Jpa 自动生成的ID会在em.remove()后面跟着em.merge或em.persist之后按顺序创建间隙,jpa,entitymanager,Jpa,Entitymanager,我正在创建一个EJB应用程序,作为酒店房间的CRUD功能。 我的房间数据库中有4行 现在,如果我使用em.remove()方法删除第4行(房间id为104),然后添加一个新行,则表如下所示 在自动生成的序列ID中创建间隙。在添加新行时有没有办法避免这些间隙?默认情况下,JPA没有这个功能,而且这个问题与如何管理序列以及据我所知序列号不被重用更相关 当实体没有id时,Persist操作将创建一个新id,如果尝试持久化分离的对象,可能会发现EntityExistsException •如果对象是

我正在创建一个EJB应用程序,作为酒店房间的CRUD功能。 我的房间数据库中有4行

现在,如果我使用em.remove()方法删除第4行(房间id为104),然后添加一个新行,则表如下所示


在自动生成的序列ID中创建间隙。在添加新行时有没有办法避免这些间隙?

默认情况下,JPA没有这个功能,而且这个问题与如何管理序列以及据我所知序列号不被重用更相关

当实体没有id时,Persist操作将创建一个新id,如果尝试持久化分离的对象,可能会发现EntityExistsException

•如果对象是删除的实体实例,则会出现IllegalArgumentException 被合并操作抛出(否则事务将提交) 失败)


听起来像是重复的问题