0

シーケンスを使用して自動生成されたプロパティとして定義されたIDを持つJPA注釈付きエンティティがあります。しかし、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.2hibernate-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 に答える