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

这可以吗?

有帮助吗?

解决方案

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

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

不过,这确实会产生影响。您刚刚用完该 ID,但由 generatedValue 注释指定的序列并不知道这一点。除非您指定一个小于当前序列值的未使用的 ID,否则一旦序列赶上您刚刚使用的值,您就会遇到问题。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top