java - Hibernate Generated Value 策略

标签 java sql hibernate hql

我在 hibernate 状态下使用这段代码。

@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="RightID", unique=true, nullable=false)

问题是当我删除一行时,“RightId”不保持顺序。我想要类似的东西,hibernates 应该检查 id,如果缺少某些 id 值,它必须将该值赋予 'RightsId',否则将正常进行

最佳答案

我不认为在 hibernate 中有任何这样的选项可用。 除了 AUTO,您还可以尝试以下策略选项:

  1. GenerationType.TABLE - 持久性提供程序使用数据库表来管理 key 。

  2. GenerationType.SEQUENCE - 持久性提供程序使用数据库序列生成 key 。数据库必须支持序列

  3. GenerationType.IDENTITY - 持久性提供程序遵从数据库进行 key 生成。数据库必须支持 IDENTITY 列类型。

另一点:他们可能没有提供这样的选项,因为它也会降低性能。对于每个插入,它都必须搜索整个 ID 列。您可以想象它对性能的影响有多大。

关于java - Hibernate Generated Value 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10854643/

相关文章:

Spring Boot Data Rest POST 返回 204 但只有 SELECTS

hibernate - mappingBy 和 inverse 属性是否相同?

java - 每种编程语言都有单独的 Subversion 分支?

java - Blackberry 的数据库选项

java - Hashmap 返回引用而不是复制

sql - 多对多关系数据库设计

mysql - 如何编写这个 MySQL 查询?

java - Facebook 用户生日为 java.util.Date

mysql - 你能在没有模型的情况下在 Django 中运行一个原始的 MySQL 查询吗?

hibernate - Grails:如何在Grails上处理Java Bean验证