java - 使用 GenerationType.TABLE 在重新启动时 hibernate 重复主键

标签 java sql sql-server hibernate orm

我们遇到了一个问题,我们有使用 GenerationType.TABLE 生成主键的事件子类,当我们重新启动服务器时,我们会收到重复的主键错误。

我们正在使用 SQL Server 和 Hibernate 版本 3.5.1-Final。

这是我们的 Hibernate 注释的样子:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Event {

    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    private long eventID;

我们没有指定 allocationSize,所以我们使用默认值。 hibernate 序列表确实增加了,但它似乎在重新启动时重用了已经使用过的 ID。

最佳答案

尝试 GenerationType.AUTO 或 SEQUENCE。 AUTO 可以通过 hibernate 魔法工作,但 SEQUENCE 应该在数据库中创建一个序列,足够有趣,它将用于获取唯一 ID。 您使用的是哪个 SQL Server?

关于java - 使用 GenerationType.TABLE 在重新启动时 hibernate 重复主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806689/

相关文章:

php - 如何从 PHP 建立多个 MySQL 连接

sql - 不能排除以前的非重复行

sql - 转换失败 (SQL Server 2008)

java - 高效 Kademlia 桶

mysql - 为什么这个 MySQL 语句在子查询中不起作用?

java - 如何从控制台设置亲和性运行java

sql - 如何查找末尾带有特殊字符的列数据

c# - 在 XSLT 中使用从 C# 代码传递的参数

java - 带有执行器的线程池的 POC(概念验证)

java - 如何从JAVA字符串中删除ESC字符