Java 如何对标识符进行排序?

Java 如何对标识符进行排序?,java,hibernate,Java,Hibernate,在我们的旧architektur中,我们使用了如下id: /** * Model for each database-object */ public abstract class AbstractDbBase { @Getter @Setter @Id @GeneratedValue(generator = "increment") @GenericGenerator(name = "increment", strategy = "increme

在我们的旧architektur中,我们使用了如下id:

/**
  * Model for each database-object
  */
public abstract class AbstractDbBase {
    @Getter
    @Setter
    @Id
    @GeneratedValue(generator = "increment")
    @GenericGenerator(name = "increment", strategy = "increment")
    @Column(nullable = false, unique = true, updatable = false)
    private Long id;
}
但是我们在Hibernate之外更改值时遇到了一些问题。 因此,我们决定使用
postgres
中的
bigserial

我们更改了数据库,为每个表添加了一个sequence,并将其设置为主键。 我们有很多实体,它们都使用
abstractdbase
。而在
AbstractDbBase
中是id的定义

但是现在我们无法将Hibernate设置为正确使用序列。 我们尝试了以下策略(对于
@GeneratedValue()
-annotation):

  • GenerationType.IDENTITY
    :在hibnerate上创建记录时引发异常(无法访问序列)
  • GenerationType.SEQUENCE
    :引发验证异常(未找到序列)
  • GenerationType.AUTO
    :引发验证异常(未找到序列)
我的问题是:我们如何告诉Hibernate使用正确的序列?(没有为每个实体写明确的序列名)

我发现:

所以我必须使用
GenerationType.IDENTITY
。现在我必须解决“不允许序列”的问题。 我已经解决了这个问题:

现在可以了