hibernate3-maven-plugin hbm2ddl target игнорирует определения последовательностей и вместо этого генерирует hibernate_sequence по умолчанию
У меня есть аннотированная сущность JPA с идентификатором, определенным как автоматически сгенерированное свойство с использованием последовательностей. Но когда я пытаюсь сгенерировать DDL с помощью hibernate3-maven-plugin, мои определенные последовательности не генерируются, вместо этого присутствует hibernate_sequence.
@Entity
@Table(name = "DUMMY")
@SequenceGenerator(name = "DUMMY_SEQ")
public class Dummy {
private Long pk;
@Id
@Column(name = "PK", nullable = false )
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="DUMMY_SEQ")
public Long getPk() {
return pk;
}
public void setPk(Long pk) {
this.pk = pk;
}
}
Я ожидаю что-то вроде:
create sequence DUMMY_SEQ;
в сгенерированном DDL. Что я делаю не так? hibernate3-maven-plugin версия 2.2. hibernate-entitymanager версия 3.4.0.GA.
1 ответ
Вы не определили имя последовательности базы данных. Имя атрибута в SequenceGenerator - это только имя самого SequenceGenerator, а не имя последовательности в базе данных. Результат этого провайдера по умолчанию, в этом случае используется *hibernate_sequence*. Чтобы повлиять на имя последовательности, используйте атрибут sequenceName:
@SequenceGenerator(name = "DUMMY_SEQ", sequenceName="DUMMY_SEQ")