0

我有 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

4

1 回答 1

0

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

@SequenceGenerator(name = "DUMMY_SEQ", sequenceName="DUMMY_SEQ")
于 2012-07-31T11:27:00.440 回答