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)


目录
相关文章
|
2月前
|
缓存 NoSQL Java
揭秘性能提升的超级武器:掌握Hibernate二级缓存策略!
【9月更文挑战第3天】在软件开发中,性能优化至关重要。使用Hibernate进行数据持久化的应用可通过二级缓存提升数据访问速度。一级缓存随Session生命周期变化,而二级缓存是SessionFactory级别的全局缓存,能显著减少数据库访问次数,提高性能。要启用二级缓存,需在映射文件或实体类上添加相应配置。然而,并非所有场景都适合使用二级缓存,需根据业务需求和数据变更频率决定。此外,还可与EhCache、Redis等第三方缓存集成,进一步增强缓存效果。合理运用二级缓存策略,有助于大幅提升应用性能。
81 5
|
3月前
|
缓存 Java 数据库连接
Hibernate 中的获取策略有哪些?
【8月更文挑战第21天】
21 0
|
4月前
|
SQL 缓存 Java
使用Hibernate实现复杂数据库查询优化策略
使用Hibernate实现复杂数据库查询优化策略
|
4月前
|
SQL 缓存 Java
使用Hibernate实现复杂数据库查询优化策略
使用Hibernate实现复杂数据库查询优化策略
|
5月前
|
缓存 Java 数据库连接
构建高效数据库交互:Hibernate与JPA的性能优化策略
【6月更文挑战第25天】在大数据时代,优化Hibernate和JPA的数据库性能至关重要。本文探讨了优化策略:正确配置映射以减少冗余,利用JPQL/HQL提升查询效率,避免全字段选择,使用索引和分页,有效利用缓存策略,以及管理事务以平衡资源锁定。示例代码展示了分页查询的实现,以防止性能下降。
112 0
|
6月前
|
Java 数据库连接 数据库
Hibernate5中实体映射命名策略
Hibernate5中实体映射命名策略
131 0
|
6月前
|
SQL 缓存 Java
Hibernate - 检索策略入门与详解
Hibernate - 检索策略入门与详解
55 0
|
SQL Java 数据库连接
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
107 0
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
|
存储 SQL Oracle
Hibernate-05-主键生成策略
Hibernate-05-主键生成策略
Hibernate-05-主键生成策略
|
SQL 缓存 Java
hibernate(八) Hibernate检索策略(类级别,关联级别,批量检索)详解
很多看起来很难的东西其实并不难,关键是看自己是否花费了时间和精力去看,如果一个东西你能看得懂,同样的,别人也能看得懂,体现不出和别人的差距,所以当你觉得自己看了很多书或者学了很多东西的时候,你要想想,你花费的也就那么一点时间,别人花你这么多时间也能够学到你所学到的东西,所以还是要继续努力。既然不是天才,唯有靠勤奋来弥补。
195 0