在Hibernate中绕过GeneratedValue

时间:2008-09-18 02:20:18

标签: java hibernate jboss

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

这可能吗?

1 个答案:

答案 0 :(得分:5)

我知道你可以在JPA规范中这样做,所以你应该能够在Hibernate中(使用JPA +注释)。

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

但这确实有分歧。您刚刚用完了该ID,但GeneratedValue注释指定的序列并不知道。除非你指定一个比当前序列值少的ununsed ID,否则一旦序列达到你刚才使用的值,你就会遇到问题。

所以,也许我可以看到您希望用户能够指定ID的位置,但是您需要捕获将来可能出现的可能的异常(重复ID)。