用户登录
用户注册

分享至

hibernate 获取自增序列

  • 作者: 指着太阳说月亮我日
  • 来源: 51数据库
  • 2021-01-15
步骤如下:
1,新建一个数据库表
-- Create table
create table TBL_SCHEDULE_TEMPLATE
(
ID VARCHAR2(100) not null,
NAME VARCHAR2(4000) not null,
PROJECT VARCHAR2(100) not null,
) //

2,假设已经有个java实体和hibernate的配置文件

需要在数据库中建立一个序列 sequence

-- Create sequence

create sequence SEQ_TEMPLATE
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;

3,修改hibernate配置文件

Java代码



SEQ_TEMPLATE





  

在id里面配置,这是自动寻找你的数据库自增方式




  在中加入



  需要在主键上增加一个@id标识
@id
@generatedvalue(strategy = generationtype.identity)
public int getid() {
return id;
}
generationtype 类型的枚举值,它的内容将指定openjpa容器自动生成实体标识的方式,共有:

generatortype.auto

generationtype.identity

generationtype.sequence

generationtype.table

四种方式 。
@generatedvalue(strategy = generationtype.identity)
一般可以根据你采取的底层数据库来选择,比如是用oracle,id用sequence的话,可以采取sequence方式,如果是用mysql,一般就用auto模式
// 默认相当于native id生成策略,jpa 1.0 中只有4个可选值
// 如果只写@id ,主键字段不会自动产生,需要我们手动输入
// @generatedvalue 默认为策略产生id
// 如果我要让id为identity 则需要手动给他指定值--@generatedvalue(strategy=generationtype.identity)
这样选择了主键生成策略,在给实体赋值时就不用设置id值了。
软件
前端设计
程序设计
Java相关