В моем оракуле есть объект последовательности:
create sequence BASE_SEQ
minvalue 1
maxvalue 9999999999999999999999999999
start with 100
increment by 1
nocache;
Я использую jpa (toplink) для своего веб-приложения. У меня есть базовый класс для всех моих объектов БД:
@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;
}
Этот класс наследуется некоторыми объектами. После того, как я запускаю свое приложение и сохраняю / объединяю несколько сущностей в db, я могу обнаружить, что их 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