我正在使用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="...")
?
非常感谢。