美文网首页
hibernate脏检查与字节增强的疑问与思考

hibernate脏检查与字节增强的疑问与思考

作者: yangganboy | 来源:发表于2023-05-16 01:28 被阅读0次

那时初入职场,mybatis并没有在中国有绝对的占有率。我一个人在小公司里想用什么就用什么,所以理所当然的用起了hibernate。转眼间已经过了很多年了,最近有朋友介绍项目,时间宽裕,技术路线自己定。我又把hibernate拿出来用用。

曾经对部分hibernate的理解已变淡。spring配置方式也从xml变为注解又加强为spring boot。但是hibernate的脏检查是不得不提的重点。现在网上这方面的总结很少都是片段提到,甚至在文档中的介绍也很简单,我看了几遍也没得到全面的认识。因此我把最近的理解写下来。

hibernate的脏检查分为 扫描和触发

扫描就是加载时保存一份快照,提交时把所有的实体和之前的快照对比,不同的说明就是脏数据,需要更新到数据库。

触发就是程序调用set时,如果值变了就标记为脏 ,需要更新到数据库 。

默认为扫描,听起来就性能很差,特别是实体比较多的时候,当然一般情况也性能也不会很差。在hibernate3以前,只有扫描这种模式。

触发分两种,一种是加载时织入触发代码,一种是编译时织入触发代码。

加载时织入触发代码只有spring中开启@EnableLoadTimeWeaving加配置才会生效(这个配置未来会取消)

spring boot开启加载时脏检查的配置

编译时织入只需配置插件即可使用,在hibernate文档的Bytecode Enhancement栏可以看到。

加载时织入和编译时织入可以同时存在,当加载时织入程序检测到实体已经被编译时织入增强则不会继续增强。

相关文章

  • 引来的思考与疑问

    那位流浪的网友激起我对自己的审视,突然问自己,在干什么?!每天纠结的事情,真的需要纠结吗?还是庸人自扰?当我急着该...

  • 字节码增强:原理与实战

    本文由一个拦截器逻辑的使用场景及演变历程,引入字节码增强技术。介绍字节码的本质,字节码增强的原理及JVM 启动过程...

  • Hibernate与Mybatis

    Hibernate与Mybatis的优缺点:1、Hibernate与MyBatis都可以是通过SessionFac...

  • 抖音 头条小程序注册开发

    字节跳动小程序旨在针对字节跳动全平台,增强内容作者与内容流量的服务、拓展和消费变现能⼒,打造行业标杆,创造流量变现...

  • 打印出实际执行的sql

    shardingsphere与hibernate结合使用时候。hibernate打印出的sql与实际执行的sql实...

  • Hibernate注解(一)类级别注解

    1、Hibernate注解简介 2、JPA与Hibernate的关系 3、Hibernate注解分类 4、@Ent...

  • 关于时间的疑问与思考

    生而为人20年,疑惑,迷茫,悲伤,痛苦,失落,开心,快乐,各种喜怒哀乐体会的太多太多。感谢父母给我这幅躯壳能让我体...

  • java.lang.NoSuchMethodError: org

    hibernate3与hibernate4版本问题

  • Java知识点总结框架篇16-20

    十六、Hibernate与JDBC的区别 1、hibernate和jdbc主要区别就是,hibernate先检索缓...

  • Mybatis

    mybatis 与 hibernate 区别 : mybatis 相比于hibernate 需要关心很多细节 ...

网友评论

      本文标题:hibernate脏检查与字节增强的疑问与思考

      本文链接:https://www.haomeiwen.com/subject/jcuvsdtx.html