Hibernate主键生成策略

Hibernate主键生成

generator元素:表示了一个主键生成器,它用来为持久化类实例生成唯一的标识

  1. 程序员自己控制:assigned(数据类型不限、保存前须赋值,自定义ID)
  2. 数据库控制: identity(数字,无需赋值,标识列/自动增长) sequence(数字,无需赋值,默认使hibernate_sequence这个序列,也可以通过sequence/sequence_name参数赋值)
  3. hibernate控制:increment uuid/uuid.hex( 数字,无需赋值,是由容器自动生成的一个32位的字符串,.hex代表的是十六进制,32位的字符串)
  4. 其它:native( 等于identity+sequence)

自定义主键生成器

  1. 在配置文件xxx.hbm.xml指定主键生成器类
  2. 创建主键生成器类时实现IdentifierGenerator接口即可,并还可以实现org.hibernate.id.Configurable接口来读取一些配置信息
  3. 在主键生成器类中重写generate方法,并且自定义格式

实例(这里利用生成主键)

实体类Worker

package com.Tang.two.entity;

public class Worker {
	
	private String wid;
	private String wname;
	@Override
	public String toString() {
		return "Worker [wid=" + wid + ", wname=" + wname + "]";
	}
	public String getWid() {
		return wid;
	}
	public void setWid(String wid) {
		this.wid = wid;
	}
	public String getWname() {
		return wname;
	}
	public void setWname(String wname) {
		this.wname = wname;
	}
}

Worker.hbm.xml
这里只是用uuid来实现,可以根据需要来实现,要哪个就放哪个出来

<?xml ver
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值