我有一个带有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
发布于 2012-07-31 19:27:00
您尚未定义数据库序列的名称。SequenceGenerator中的属性名称只是SequenceGenerator本身的名称,而不是数据库中序列的名称。结果是提供程序缺省值,在本例中使用*hibernate_sequence*。要影响序列的名称,请使用sequenceName属性:
@SequenceGenerator(name = "DUMMY_SEQ", sequenceName="DUMMY_SEQ")https://stackoverflow.com/questions/11738367
复制相似问题