我想问一些有关Hibernate创建的数据库序列的帮助。
我在我的实体类中有此批注-下面的代码- 为了对伙伴表有单独的顺序。我希望序列从1000开始,因为我在部署期间使用import.sql将测试数据插入到数据库中,并且希望避免违反约束。但是,当我要持久存储数据时,我遇到了违反约束的异常,它告知我partner_id = 2已经存在的事实。好像我错过了什么。
@Id @Column(name = "partner_id") @SequenceGenerator(initialValue=1000, allocationSize=1, name = "partner_sequence", sequenceName="partner_sequence") @GeneratedValue(generator="partner_sequence") private Long partnerId;
生成的序列如下所示:
CREATE SEQUENCE partner_sequence INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1; ALTER TABLE partner_sequence OWNER TO postgres;
我使用的是postgres 9.1。
我错过了什么?这就是我如何实现自己想要的方式?
感谢您的任何帮助!
initialValue并且alocattionSize特定于hilo使用序列的算法。根据这个 initialValue甚至没有支持。我什至看不到如何从Java层支持它,因为序列值是在数据库中生成的。
initialValue
alocattionSize
hilo