hibernate id生成策略 mysql_hibernate(四)ID生成策略

一、ID生成策略配置

1、ID生成方式在xml中配置方式:

/p>

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

2、ID用注解配置:

在ID注解下添加注解@generatedValue,只有四种方式,默认的策略是auto

配置方式:@genetatedValue(strategy=GenerationType.AUTO)

(1)AUTO - 相当于采用xml中native方式

(2)TABLE - 使用表保存id值

(3)IDENTITY - identity column

(4)SEQUENCE - sequence

在类名上添加注解@SequenceGenerator(name="teacherSEQ" , sequenceName="teacherSEQ_DB");定义sequence生成器,name属性指定的是生成器名字,sequenceName指定的是sequence名字

在getId()方法上添加注解@genetatoedValue(strategy=GenerationType.SEQUENCE , generator="teacherSEQ")表示采用sequence生成策略,采用生成器是teacherSEQ

二、ID主要生成策略

hibernate中id生成主要方式有:

(1)native:根据不同的数据库采用不同的ID生成方式,例如:在SQL Server中采用identity; 在MySQL中采用auto_increment; 在ORACLE中就会采用sequence。

(2)uuid:原理是使用128位的uuid算法产生主键,从而能够确保网络环境下的一致性。使用此生成策略时,实体类的主键是String类型的,映射成表中字段为varchar。适用所有数据库。

(3)identity:这种策略在采用SQL Server时,相当于SQL Server的identity关键字。

(4)sequence:在 Oracle中使用序列(sequence)。返回的标识符是long, short或者 int类型的。

三、联合主键

1、xml文件方式配置联合主键

单独建一个类作为主键类,以Student类为例,假设student有两个主键id和name,那么可以建一个主键类StudentPK,主键类中包含两个属性即student的两个主键,而且要实现Serializable接口,覆盖equals和hashCode方法:

packagecn.orlion.hibernate.model;//实现Serializable接口

public class StudentPK i

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值