如何识别序列?

时间:2018-07-24 13:07:21

标签: java hibernate

在我们的旧建筑中,我们使用的id是这样的:

static

但是在Hibernate之外更改值时,我们遇到了一些问题。 因此,我们决定使用WinForms中的/** * 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; }

我们更改了数据库,并为每个表添加了序列,并将其设置为主键。 我们有很多实体,并且所有实体都使用bigserial。在postgres中是ID的定义。

但是现在我们不能将Hibernate设置为正确使用序列。 我们尝试了以下策略(针对AbstractDbBase注释):

  • AbstractDbBase:在hibnerate上创建记录时抛出异常(无法访问序列)。
  • @GeneratedValue():引发验证异常(未找到序列)。
  • GenerationType.IDENTITY:引发验证异常(未找到序列)。

我的问题是:我们如何告诉Hibernate使用正确的顺序? (不写每个实体的序列名)

1 个答案:

答案 0 :(得分:0)

我发现了这个:hibernate could not get next sequence value

所以我必须使用GenerationType.IDENTITY。现在,我必须解决“序列无许可”问题。 我已经完成了以下问题:ERROR: permission denied for sequence cities_id_seq using Postgres

现在可以使用。