当前位置: 首页 > 知识库问答 >
问题:

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

周昊乾
2023-03-14

我有一个JPA注释实体,ID定义为使用序列自动生成的属性。但是,当我尝试用hibernate3 maven插件生成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个答案

殳越
2023-03-14

您还没有定义数据库序列的名称。S的属性名只是序列生成器本身的名称,而不是数据库中序列的名称。结果是默认提供程序,在本例中使用*hibernate_sequence*。要影响序列的名称,请使用序列名属性:

@SequenceGenerator(name = "DUMMY_SEQ", sequenceName="DUMMY_SEQ")
 类似资料:
  • 我正在使用hibernate3-maven-plugin版本2.0hbm2ddl从代码生成SQL脚本。我正在使用过程类。我的实体类我使用的是序列。@sequenceGenerator(Name=“sessionseq”,sequenceName=“session_seq”,allocationsize=50,initialvalue=1)当我运行Maven脚本时,这将生成create SEQUEN

  • JOOQ似乎完全忽略了数据库列的默认值。既不会更新ActiveRecord对象,也不会在插入时跳过此列。相反,它尝试将其设置为NULL,这在非NULL列上失败。 例: 我所期望的行为是,要么new记录()用korrekt值初始化所有默认变量(尽管我知道如果结果是自定义函数的结果,这可能很困难:-))。或者INSERT INTO不插入所有带有默认值的未修改列,然后INSERT INTO后面跟着一个S

  • 问题内容: 我已经更新到了较新版本的hibernate3-maven-plugin。我在尝试使用下面提到的插件时遇到以下错误。 感谢您解决此问题的任何指示。 问题答案: 配置方式已更改为直接使用ant hibernate工具插件。因此,配置与ant插件格式完全相同,而无需额外的taskDef例如jpaconfiguration。有关更多信息,请参见hibernate ant工具参考文档:http

  • 我寻找一些配置,我可以改变接口的名称,已生成,但没有找到解决方案。 对此有什么想法吗??

  • 有没有一种方法可以忽略使用mapstruct在此代码示例中第三种方法的映射器的生成?

  • 我希望能够自动设置我们的eclipse项目来忽略使用m2e的可选编译问题,但是我似乎遇到了m2e和maven的冲突。 如果我使用build helper maven插件添加源目录,那就太好了——我不必自动将