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>