java - 绕过 Hibernate 中的 GeneratedValue

标签 java hibernate jboss

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

这可能吗?

最佳答案

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

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

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

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

关于java - 绕过 Hibernate 中的 GeneratedValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/89439/

相关文章:

java - 使用二分查找高效地获取排序数组中小于给定数字的数字计数

java - 如何实现 StringBuilder 以避免不可变的字符串分配问题?

hibernate - 使用 Hibernate 3.5 批量插入

java - 如何在 tomcat 7 上重新部署 hibernate-c3p0 项目而不会出现奇怪的 c3p0 错误

java - BigDecimal 带刻度除法

java - 删除二叉搜索树中的节点

java - Spring/Hibernate 中的链式 DAO 方法用于延迟初始化

templates - org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException : Error processing GroovyPageView: Template not found

Java webapp 部署 : explode or not to explode?

web-services - RESTEasy相对于Apache CXF的优势?