PostgreSQL的一个实体的多个Hibernate序列生成器
我可以为一个实体使用多个序列生成器吗?
@Id@SequenceGenerator(name=”subscription_id_seq”,sequenceName=”subscription_id_seq”, allocationSize=7)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator=”subscription_id_seq”)
@Column(unique=true, nullable=false)
private Integer id
@Column(name="code", nullable=false, unique=true )
@SequenceGenerator(name="subscription_code_1_seq",sequenceName="subscription_code_1_seq", allocationSize=7)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="subscription_code_1_seq")
private Integer code;
回答:
你不能。该生成器仅适用于标识符列。
确保使用脚本(例如hibernate.hbm2ddl.import_files
)创建此序列:
create sequence subscription_code_1_seq start 1 increment 7
然后使用如下映射:
@Id@SequenceGenerator(
name="subscription_id_seq",
sequenceName="subscription_id_seq",
allocationSize=7
)
@GeneratedValue(
strategy=GenerationType.SEQUENCE,
generator="subscription_id_seq"
)
@Column(unique=true, nullable=false)
private Integer id;
@Column(
name="code",
nullable=false,
unique=true,
insertable = false,
updatable = false,
columnDefinition = "BIGINT DEFAULT nextval('subscription_code_1_seq')"
)
@Generated(GenerationTime.INSERT)
private Integer code;
以上是 PostgreSQL的一个实体的多个Hibernate序列生成器 的全部内容, 来源链接: utcz.com/qa/409217.html