hibernate主键生成策略native,assigned,uuid的区别

本文介绍了Hibernate中三种常用的主键生成策略:assigned、native及uuid.hex,并提供了具体的XML配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hibernate在操作数据库时一般使用这3种id主键生成策略,native,assigned以及uuid.hex,我们在实体类映射文件student.hbm.xml中对这3种id主键策略进行讲解。

第一种:assigned主键策略需要在添加数据时自己设置id,因为它不能自动生成id,

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
   "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
   "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
   <class name="com.baidu.entity.Student" table="student">
      <!-- 主键配置 -->
      <id name="id" column="id">
          <!-- 主键策略 -->
          <generator class="assigned"></generator>
      </id>
      <property name="name" column="name"></property>
      <property name="gender" column="gender"></property>
      <property name="age" column="age"></property>
   </class>
</hibernate-mapping>

第二种:native为id自动生成策略,生成的是数字id,添加数据到mysql数据库时不需要设置id的值,使用方法如下,实体类id属性为int类型。

<id name="id" column="id">
  <!-- 主键策略 -->
  <generator class="native"></generator>
</id>

第三种:uuid.hex会自动生成16进制uuid主键,添加数据到mysql数据库时不需要设置id的值,如果将id设置为这种策略,那么实体类id属性必须要定义成字符串string类型。

<id name="id" type="java.lang.String">
	<column name="id" length="32" />
	<generator class="uuid.hex" />
</id>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值