Hibernate 主键生成机制归纳

1、generator = increment
<id   name="pid"   column="pid"   length="200"   type="java.lang.Long">
            <!--
                主键的产生器
                就该告诉hibernate容器用什么样的方式产生主键
             -->
            <generator  class="increment"></generator>    ##必须掌握的 assigned、identity、increment、sequence、uuid
</id>
         说明:
                   1、主键的类型必须是数字;
                   2、主键的生成是由hibernate内部完成的,程序员不需要干预;

                   3、这种生成机制效率比较低。


--------------------------------------------------------------------
2、generator = identity

			<id   name="pid"   column="pid"   length="200"   type="java.lang.Long">
				<generator  class="identity"></generator>	##必须掌握的 assigned、identity、increment、sequence、uuid
			</id>
           说明:
                        1、新的主键的产生是由数据库完成的,并不是由hibernate或者程序员完成的;
                        2、该表必须支持自动增长机制;
                        3、效率比较高。
--------------------------------------------------------------------

3、<generator  class="assigned">

            说明:必须在程序中手动的设置其ID值


--------------------------------------------------------------------

4、<generator  class="uuid">

                说明
                    1、UUID是由hibernate内部生成的
                    2、主键的类型必须是字符串

--------------------------------------------------------------------

5、 在 increment 情况下,手动设置主键有没有效果。

			<id   name="pid"   column="pid"   length="200"   type="java.lang.Long">
				<generator  class="increment"></generator>	##必须掌握的 assigned、identity、increment、sequence、uuid
			</id>
--------------------------------------------------------------------
6、结论:
        increment:

                     1、主键的类型必须是数字;
                     2、主键的生成是由hibernate内部完成的,程序员不需要干预;
                     3、这种生成机制效率比较低。

        identity:

                     1、新的主键的产生是由数据库完成的,并不是由hibernate或者程序员完成的;
                     2、该表必须支持自动增长机制;
                     3、效率比较高。

        assigned:必须手动的设置其ID值

        uuid:

                     1、UUID是由hibernate内部生成的
                     2、主键的类型必须是字符串










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值