一尘不染

在Hibernate中绕过GeneratedValue

hibernate

是否有可能绕过@GeneratedValueHibernate中的ID,在大多数情况下,我们希望使用来设置ID
GeneratedValue,但在某些情况下希望手动设置ID。

这可能吗?


阅读 316

收藏
2020-06-20

共1个答案

一尘不染

我知道您可以在JPA规范中执行此操作,因此您应该能够在Hibernate中(使用JPA +批注)。

如果仅填写要创建的新持久性模型的ID字段,那么当您将该模型“合并”到EntityManager中时,它将使用您设置的ID。

但是,这确实有后果。您刚刚用完了该ID,但是GeneratedValue批注指定的序列不知道这一点。除非您指定一个比当前序列值少的未使用的ID,否则一旦序列追上您刚刚使用的值,您将遇到问题。

因此,也许我可以看到您可能希望用户在哪里指定ID,但是您需要捕获将来可能出现的异常(重复ID)。

2020-06-20