<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、主键的类型必须是字符串