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
@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值了。