使用GenerationType.TABLE在重新启动时Hibernate重复主键

时间:2010-05-10 21:48:25

标签: java sql sql-server hibernate orm

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

我们正在使用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。

1 个答案:

答案 0 :(得分:0)

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