【问题标题】:ID Generator for Hibernate with Oracle (Spring MVC)带有 Oracle 的 Hibernate ID 生成器(Spring MVC)
【发布时间】:2015-12-10 19:45:32
【问题描述】:

我正在尝试在 Hibernate 中为 Oracle DB 注释 ID 生成器, 到目前为止我已经尝试过了:

a) @GeneratedValue(strategy=GenerationType.AUTO)   

当我尝试持久化表格时说 id 不能为空

b) @GeneratedValue(strategy=GenerationType.SEQUENCE) 

说 Oracle 不支持序列(或类似的东西)

c) @GeneratedValue(strategy=GenerationType.IDENTITY) 

当我尝试持久化表格时说 id 不能为空。

我应该如何在 Hibernate 中为 Oracle DB 注释 ID 生成器?

【问题讨论】:

  • 您好,欢迎来到 StackOverflow!有多种方法可以格式化您的问题,以便它们更具可读性,而可读性问题通常会得到更多关注和更多答案。一旦通过审核流程,我会继续编辑您的帖子,使其更具可读性。

标签: java spring oracle hibernate spring-mvc


【解决方案1】:

您可以将生成策略添加为序列并将序列生成器添加到您的实体:

@SequenceGenerator(name = "GEN_TABLE_NAME", sequenceName = "SEQ_TABLE_NAME")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "GEN_TABLE_NAME")
private Long id;

如果您不使用hbm2dll.auto 设置,则需要在您的oracle 数据库中创建序列并将其名称指定为“sequenceName”属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多