【发布时间】:2013-12-13 18:32:09
【问题描述】:
我正在做一个使用 sqlite、JPA 和 eclipseLink 的简单项目。
首先我在我的数据库中创建我的Person 表:
CREATE TABLE Person (
idPerson INTEGER PRIMARY KEY AUTOINCREMENT,
firstname TEXT DEFAULT 'NULL',
birthdate DATETIME DEFAULT 'NULL'
)
然后添加一个新的测试条目(为了生成sqlite_sequence表)
INSERT INTO [Person] ([firstname], [birthdate]) VALUES ('Foo', '1145-11-12 00:00:00')
所有连续插入都是使用 JPA 完成的,在 Person 类中,我使用此符号表示人员 ID:
@GeneratedValue(generator="sqlite_person")
@TableGenerator(name="sqlite_person", table="sqlite_sequence",
pkColumnName="name", valueColumnName="seq",
pkColumnValue="Person")
@Column(name="idPerson")
private int id;
第一个 JPA 插入没问题(也就是说,新插入的新插入的人的 id = 2)但是我得到了 50 而不是只有 1 的增量(所以第三个插入的人的 id = 52,第四个 102 等等开)。
我读到“对此表进行修改可能会干扰 AUTOINCREMENT 密钥生成算法” [ref]
我的问题是否与此有关,即使理论上我没有修改该表? 有什么建议可以解决问题吗?
【问题讨论】:
标签: sqlite jpa eclipselink