我正在创建一个EJB应用程序,它作为酒店房间的CRUD功能。 我的房间数据库中有4行。
现在,如果我使用em.remove()方法删除第4行(具有房间ID 104),然后添加新行,则表格如下所示
在自动生成的序列ID中创建间隙。有没有办法在添加新行时避免这些差距?
答案 0 :(得分:1)
默认情况下,JPA没有此功能,此问题与数据库管理序列的关系更为相关,据我所知,序列号不会重复使用。
持久化操作将创建一个新的id,当实体没有,如果你试图持久化一个分离的对象,你可能会发现一个EntityExistsException。
•如果Object是已删除的实体实例,则会出现IllegalArgumentException 合并操作抛出(或事务提交将 失败)。