hibernate3-maven-plugin hbm2ddl目标忽略序列定义并生成默认的hibernate_sequence

时间:2012-07-31 10:46:54

标签: hibernate jpa jpa-2.0 ddl hibernate3-maven-plugin

我有JPA带注释的实体,ID使用序列定义为自动生成的属性。但是当我尝试使用hibernate3-maven-plugin生成DDL时,我的定义序列不会被生成,而是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 个答案:

答案 0 :(得分:0)

您尚未定义数据库序列的名称。 SequenceGenerator中的属性 name 只是SequenceGenerator本身的名称,而不是数据库中序列的名称。结果是提供者默认,在这种情况下使用* hibernate_sequence *。要影响序列的名称,请使用sequenceName属性:

@SequenceGenerator(name = "DUMMY_SEQ", sequenceName="DUMMY_SEQ")