如何在hibernate中为使用always always as identity创建主键的表定义主键?

时间:2017-11-21 15:22:28

标签: hibernate spring-mvc hibernate-mapping oracle12c

我创建了一个客户表格,如下所示

CREATE TABLE customer (
  id number(11) generated always as identity (start with 1 increment by 1),
  first_name varchar(45) DEFAULT NULL,
  last_name varchar(45) DEFAULT NULL,
  email varchar(45) DEFAULT NULL,
  PRIMARY KEY (id)
);

现在我想在hibernate中映射表(Customer)及其字段。要映射表Customer的主键ID,我需要使用哪种策略(GeneratedType),如下所示?

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private int id;

我尝试过使用所有策略(AUTO,IDENTITY,TABLE,SEQUENCE)。但是对于表中定义的这个主键,它们都没有工作。

在保存客户的同时获得不同类型的错误。

请指导在实体类客户中定义主键,以便我可以成功保存客户。

1 个答案:

答案 0 :(得分:0)

尝试使用

select

它检索由数据库触发器分配的主键,方法是通过某个唯一键选择行并检索主键值。