有可能在hibernate中绕过@GeneratedValue的ID,我们有一种情况,大多数时候我们希望使用GeneratedValue设置ID,但在某些情况下,需要手动设置ID.
这可能吗?
解决方法
我知道您可以在JPA规范中执行此操作,因此您应该可以在Hibernate(使用JPA注释)中.
如果您刚刚填写您正在创建的新持久模型的ID字段,那么当您将该模型“合并”到EntityManager中时,它将使用您设置的ID.
这确实有分歧.你刚刚使用了该ID,但是由GeneratedValue注释指定的序列不知道.除非你指定一个比当前序列值低的无符号ID,否则当序列达到刚才使用的值时,您将会遇到问题.
所以,也许我可以看到你可能希望用户能够指定一个ID,但是您需要捕获将来可能出现的可能的异常(重复ID).