我使用 JPA + OpenJPA 和 PostgreSQL 作为后端 RDBMS。我的表的主键通常由SERIAL
/BIGSERIAL
列组成。因此 PostgreSQL 会自动为新条目 ( strategy=GenerationType.IDENTITY
) 生成 ID。
ID 属性的注解如下所示:
@Id
@SequenceGenerator(name="myseq",sequenceName="foobartable_fooid_seq")
@GeneratedValue(generator="myseq",strategy=GenerationType.IDENTITY)
我的问题是:我可以将此注释块复制并粘贴到多个实体,同时只修改sequenceName
值吗?表sequenceName
与表不同。但是可以命名所有实体的 SequenceGeneratormyseq
或类似的名称吗?还是必须为每个实体的 SequenceGenerator 指定一个唯一的生成器名称?那么每个 SequenceGenerator 名称在持久化单元中必须是唯一的吗?
使用与数据库中的 sequenceName 相同的值可能是个好主意吗?所以我会写一些类似的东西
@Id
@SequenceGenerator(name="foobartable_fooid_seq",sequenceName="foobartable_fooid_seq")
@GeneratedValue(generator="foobartable_fooid_seq",strategy=GenerationType.IDENTITY)
关于如何命名 SequenceGenerators 有什么建议吗?
非常感谢您的任何建议!
您的,Snrub 先生