hbm全称:Hibernate Mapping(Hibernate映射)
<?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">
<!--这里的package属性写的是实体类包-->
<hibernate-mapping package="com.me.relation.entity">
<!--class标签中的name为实体对应的类名,table标签为创建的表名,如果不写默认就是类名首字母小写(student)-->
<class name="Student" table="student">
<!--
以下所有标签,name为对应实体中属性名,column属性可有可无,有的话表示自己定义在表中的字段名,不写的话默认与name一致(与实体中的属性名一致)
-->
<!--必须有的主键标签-->
<id name="id">
<!--主键生成策略,这里表示自增长-->
<generator class="identity"></generator>
</id>
<property name="joinTime" column="join_time"></property>
<property name="name"></property>
<property name="sex"></property>
<property name="age"></property>
</class>
</hibernate-mapping>
主键生成策略详解:
increment, 数字类型的自增。(用于单线程,或线程安全的)
原理:当前表最大的id值,+1,然后插入时加进去
identity,数字类型的自增。依赖于数据库底层的实现。
原理:数据库底层主键的auto_increament
uuid,生成32位的16进制的一串没有任何意义的唯一编码。
原理:框架生成,然后插入时加进去
guid ,用书mySql或者Sql service数据中生成字符串类型的唯一标识。
原理:用数据库自带的uuid函数
native: 依赖于数据库底层的实现。数据库默认的主键生成策略是什么,他就是什么。
原理:数据库默认(auto_increament)
assigned:手动分配。
原理:手动加
foreign : 使用外键做主键。(比较少见,一般只会一对一当中出现)
原理:获取外键的值,插入到表中