JPA:将默认列值设置为数据库中的序列

3

我正在使用Postgres作为数据库,使用JPA 2.0作为提供程序。

我一直在使用@GeneratedValue(strategy = GenerationType.IDENTITY),它为该列生成自己的序列,并执行此查询(或类似查询)。

ALTER TABLE "comment" ALTER COLUMN id SET DEFAULT nextval('comment_id_seq'::regclass);

现在我正在使用

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "GEN_COMMENT")
@SequenceGenerator(name = "GEN_COMMENT", sequenceName = "SEQ_COMMENT")

这个功能也会生成自己的序列,但不会执行该查询。

我的观点是,当我使用 IDENTITY 时,数据库可以自动从序列中插入列值,这在除应用程序之外还有其他访问数据库的情况下非常有用。

那么我的问题是,是否有任何方法可以强制 JPA 将该列的默认值设置为序列,而无需重新定义 @Column(columnDefinition="...")

非常感谢。

1个回答

1

这是与数据库有关的,Postgres 定义了类型serial 作为生成类型IDENTITY,它会自动创建该数据库结构。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接