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")
Другие вопросы по тегам