您的位置:首页 > 其它

Hibernate的id生成机制

2011-08-03 21:02 218 查看
下午学习的过程中遇到一个问题 很纠结……

代码写的没有错 也能运行就是插不到数据库里去,找了很多方法都不行!!最后发现

<id name="id" type="java.lang.Integer">

<column name="id" />

<generator class="identity" /><!-- 这里比较奇怪啊 如果使用increment就不能插入数据 而使用了identity就可以???????????????? -->

</id>

基于XML配置

<id name="id" type="java.lang.Integer">

<column name="ID" precision="8" scale="0" />

<generator class="native" />

</id>

常见的generator:

increment:用于long、short、int类型唯一标识,只有在没有其他进程往同一张表中插入数据时才能使用,在集群下不能使用

identity:采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL 中的主键生成机制。

sequence:采用数据库提供的sequence机制生成主键。如 Oralce 中的Sequence。

native: 由Hibernate 根据使用的数据库自行判断采用identity、hilo、sequence 其中一种作为主键生成方式。跨数据库平台!

hilo:通过hi/lo 算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源

uuid.string:与uuid.hex类似,只是生成的主键未进行编码(长度16),不能应用在 PostgreSQL数据库中。 (要求主键是String类型)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: