User.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
'-//Hibernate/Hibernate Mapping DTD 3.0//EN'
'http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd'>
<hibernate-mapping package="my.domain">
<!--
name:类,一般写全名(没有package时)
table:表,默认表名为类的简单名称
-->
<class name="User" table="t_user">
<!--
id元素用于映射主键
generator是用于指定主键生成策略
class:
assigned 手工指定
uuid 唯一标识符
identity 使用数据库自动增长策略
sequence 序列
native 根据数据库能力自动选择
hilo 高低位,需要额外一张表
increment 先查询当前最大的id值,由Hibernate维护,****有线程问题****
<id name="id">
<generator class="hilo" >
<param name="table">hi_value</param>
<param name="column">next_value</param>
<param name="max_lo">100</param>
</generator>
</id>
-->
<id name="id">
<generator class="native" />
</id>
<!--
普通属性(数据中的基本类型,如字符串、日期、数字等)
name: 对象中的属性名,****必须****
type: 类型
column: 表中的列名
length: 长度
not-null: 非空约束,默认为false
-->
<property name="name"/>
<property name="age" type="int" column="age" />
<property name="birthday" type="date" column="birthday" />
<!-- 当属性名与数据库关键字冲突,可以通过column指定一个列名
或者使用反引号
指定使用text类型,最好同时指定length,以确保生成符合长度要求的类型
不建议下列的方法:
<property name="desc">
<column name="desc_" length="5000" sql-type="text"></column>
</property>
-->
<property name="desc" type="text" length="5000" column="desc_"/>
<!-- 二进制类型最好指定长度
<property name="photo" type="binary" length="102400"/>-->
</class>
</hibernate-mapping>