Hibernate的id生成机制

下午学习的过程中遇到一个问题 很纠结……

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

<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类型)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值