用户登录
用户注册

分享至

hibernate自增主键

  • 作者: 锁住爱恋
  • 来源: 51数据库
  • 2020-10-01
需要在主键上增加一个@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值了。



  第一种方式
class user
{
string name;
stirng addr;
int age;
..........
}
如果name和addr是联合主键,那么配置可以如下:
<composite-id>
<key-property name="name"/>
<key-property name="addr"/>
</composite-id>
第二种方式:
class user
{
userkey id;
int age;
......
}
class userkey
{
string name;
string addr;
}
<composite-id class="com......userkey" name="id">
<key-property name="name"/>
<key-property name="addr"/>
</composite-id>
软件
前端设计
程序设计
Java相关