【问题标题】:ORA-02289: sequence does not exist, error in hibernbateORA-02289: 序列不存在,休眠错误
【发布时间】:2016-04-04 12:16:26
【问题描述】:

ORA-02289: 序列不存在,hibernbate 出错

【问题讨论】:

  • 对于 Oracle,您需要在数据库和实体中使用如下序列:@Id @SequenceGenerator(sequenceName = "yourSeq", name = "yourSeq", allocationSize = 1, initialValue = 1) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "yourSeq")

标签: java database hibernate


【解决方案1】:

在 Oracle 中,您不能自动生成值,您应该创建一个序列(我们称之为 VEHICLE_SEQ)。然后你应该把这个注释放在你的 id 上:

@GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ")
@SequenceGenerator(name = "SEQ", sequenceName = "VEHICLE_SEQ")

创建序列:

CREATE SEQUENCE VEHICLE_SEQ START WITH 1 INCREMENT BY 1;

【讨论】:

  • 你已经创建了序列(db端)?
  • 您还应该在您的 oracle 数据库中创建一个序列(称为 VEHICLE_SEQ)
  • 我没有创建序列的权限,有没有其他方法可以解决这个问题?
  • 如果您的数据库是 Oracle,则不会。但是,如果有人告诉您为 Oracle 数据库创建实体,他们应该知道您需要创建序列。
【解决方案2】:

如果你不是真的只关注序列号来生成 ID,你可以使用如下方式

@Column(name = "XYZ", nullable = false)
@GeneratedValue(generator = "uuid.hex")
@GenericGenerator(name = "uuid.hex", strategy = "uuid.hex")
@Id

每当插入新记录时,这都会生成新编号

【讨论】:

  • 公共类车辆 { @Id @GeneratedValue(generator = "uuid.hex") @GenericGenerator(name = "uuid.hex", strategy = "uuid.hex") ****** ****** 请看一下这个....线程“main”中的异常 org.hibernate.PropertyAccessException: IllegalArgumentException 在调用 org.javab.Vehicle.vehicleid 的设置器时发生
猜你喜欢
  • 1970-01-01
  • 2018-05-15
  • 2015-06-30
  • 1970-01-01
  • 2021-09-19
  • 2016-06-01
  • 2021-09-03
  • 2021-08-01
  • 2015-07-22
相关资源
最近更新 更多