Java 使用GenerationType.TABLE在重新启动时休眠重复主键

Java 使用GenerationType.TABLE在重新启动时休眠重复主键,java,sql,sql-server,hibernate,orm,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 @GeneratedValu

我们遇到了这样一个问题:事件子类使用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 sequences表不会递增,但在重新启动时,它似乎正在重用已使用的ID。

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

不能将GenerationType.AUTO与InheritanceType.TABLE\u PER\u子类一起使用。谷歌“无法使用标识列键生成与映射”我也遇到了类似的问题。我可以知道解决办法吗?