我的 oracle 数据库中有一个序列对象:
create sequence BASE_SEQ
minvalue 1
maxvalue 9999999999999999999999999999
start with 100
increment by 1
nocache;
我将 jpa(toplink) 用于我的 Web 应用程序。我的所有数据库对象都有基类:
@MappedSuperclass
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class AbstractEntity implements Serializable {
protected BigDecimal id;
@javax.persistence.Column(name = "ID")
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "BASE_SEQ")
@SequenceGenerator(name="BASE_SEQ",sequenceName="BASE_SEQ", catalog = "DOF")
public BigDecimal getId() {
return id;
}
这个类被一些实体继承。在我启动我的应用程序并将几个实体持久/合并到数据库后,我可以发现,他们的 PK 以 51 开头(而不是预期的 100)。
之后,我去我的数据库,查看我的序列对象的 DDL 并查看它已更改为:
create sequence BASE_SEQ
minvalue 1
maxvalue 9999999999999999999999999999
start with 101
increment by 1
nocache;
为什么会这样?我有一些 PK 51、52 ...等的实体,序列以 101 开头。
AS - GlassFish 3.1.1