hibernate 的主键生成策略小结

简介:                                                                           hibernate主键生成策略1,increment:以递增的方式生成OID,每次增加一(hibernate在执行插入语句之前会执行一次查询,查询的结果为这个表中的id的最大值,然后加1处理在绑定到这个insert语句中)  <id n
                                                                           hibernate主键生成策略
1,increment:以递增的方式生成OID,每次增加一(hibernate在执行插入语句之前会执行一次查询,查询的结果为这个表中的id的最大值,然后加1处理在绑定到这个insert语句中)
 <id name="userid" type="java.lang.Long">
    <column name="USERID" precision="22" scale="0" />
    <generator class="increment" />
 </id>
2,identity:由底层数据库生成OID,条件是数据库支持自动增加的字段
实现方式:
<id name="id" type="long" column="person_id" >
<generator class=“identity"/>
</id>

3.sequence:Hibernate根据底层数据库的序列来生成OID,条件是数据库支持序列
  <id name="userid" type="java.lang.Long">
            <column name="USERID" precision="22" scale="0" />
            <generator class="sequence" >
                <param name="sequence">user_seq</param>
            </generator>
  </id>

4,hilo:根据high/low算法生成OID。Hibernate根据特定表的字段作为high值,默认是采用        hibernate_unique_key表的next_hi值。Hilo不依赖于底层数据库系统。但需要在数据库系统中为其建立表。
<id name="userid" type="java.lang.Long">
    <column name="USERID" precision="22" scale="0" />
                <generator class="hilo">
            <param name="table">A</param>
            <param name="column">suibian</param>    
            <param name="max_lo">100</param>
        </generator>
</id>

5.seqhilo(3.0以后出现):根据高低位算法生成主键,需要给顶一个序列。
 <id name="userid" type="java.lang.Long">
    <column name="USERID" precision="22" scale="0" />
               <generator class="seqhilo">
            <param name="sequence">user_seq</param>
            <param name="max_lo">100</param>
        </generator>
</id>
6,native:根据数据库的情况自动选择OID生成的方式(indentity、sequence、hilo)


目录
相关文章
|
3天前
|
Java 数据库连接 数据库
Hibernate5中实体映射命名策略
Hibernate5中实体映射命名策略
54 0
|
3天前
|
SQL 缓存 Java
Hibernate - 检索策略入门与详解
Hibernate - 检索策略入门与详解
32 0
|
SQL Java 数据库连接
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
85 0
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
|
存储 SQL Oracle
Hibernate-05-主键生成策略
Hibernate-05-主键生成策略
Hibernate-05-主键生成策略
|
SQL 缓存 Java
hibernate(八) Hibernate检索策略(类级别,关联级别,批量检索)详解
很多看起来很难的东西其实并不难,关键是看自己是否花费了时间和精力去看,如果一个东西你能看得懂,同样的,别人也能看得懂,体现不出和别人的差距,所以当你觉得自己看了很多书或者学了很多东西的时候,你要想想,你花费的也就那么一点时间,别人花你这么多时间也能够学到你所学到的东西,所以还是要继续努力。既然不是天才,唯有靠勤奋来弥补。
167 0
|
SQL 关系型数据库 数据库
Hibernate-ORM:03.Hibernate主键生成策略
  ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------       此篇博客简单记录五种常用的主键生成策咯:   不同的主键生成策略,生成的sql语句,以及hibernate的操作都是不同的!   3.
1238 0
|
Oracle 关系型数据库 Java
Hibernate主键生成策略及选择
1 .increment:适用于short,int,long作为主键,不是使用数据库自动增长机制 这是hibernate中提供的一种增长机制            在程序运行时,先进行查询:select max(id) from user;                              ...
744 0
|
Web App开发 Java 数据库连接
|
算法 关系型数据库 Java
Hibernate-05-主键生成策略
主键生成策略 class 可配置项 native:根据使用的数据库帮你选择哪个值 uuid:类似C#Guid 1、assigned 主键由外部程序负责生成,在 save() 之前必须指定一个。
1040 0
|
SQL 缓存 Java
Hibernate之加载策略(延迟加载与即时加载)和抓取策略(fetch)
  假设现在有Book和Category两张表,表的关系为双向的一对多,表结构如下:   假设现在我想查询id为2的那本书的书名,使用session.get(...)方法: 1 Session session=HibernateUtil.
1242 0