zoukankan      html  css  js  c++  java
  • Hibernate一级缓存之懒加载问题

    Hibernate的懒加载:

    当用到数据的时候才向数据库查询,这就是hibernate的懒加载特性。 目的,为提高程序执行效率。

    查询操作:get()方法/load()方法

    (1)get()方法,及时加载。及时查询操作;只要调用get方法立刻向数据库查询。

    (2)load()方法,默认懒加载,即在使用数据的时候,才向数据库发送查询的sql语句。session关闭以后,不可以使用懒加载。

    1 #懒加载默认为true,即为懒加载,可以改为非懒加载。即lazy="false"
    2 #lazy="false" 关闭懒加载
    3 #lazy="true"使用懒加载
    4 #lazy="extra"在真正使用数据的时候才向数据库发送查询的sql语句。集合属性懒加载的时候提升效率。如果调用集合的size()/isEmpty()方法只是统计,不真正查询数据。
    5 
    6 <class name="类名称" table="数据表名称" lazy="false"> 
    7 
    8 ......
    9 </class>

    那么 session关闭以后,还是用懒加载数据会怎么样??肯定报错!!!

    问题来了,解决问题就能更进一步

    最简单的解决方式是 严格按照规则,先使用数据再关闭session;。那么不禁要问还有其他方法么?有!关闭懒加载(lazy="false");。还有么?.........

    那么一级缓存的特点:

    基于Session的缓存,缓存内容只在当前session有效,session关闭,缓存内容失效!作用范围较小!session之间数据不共享 缓存的事件短。缓存效果不明显。

  • 相关阅读:
    Leetcode 15 3Sum
    Leetcode 383 Ransom Note
    用i个点组成高度为不超过j的二叉树的数量。
    配对问题 小于10 1.3.5
    字符矩阵的旋转 镜面对称 1.2.2
    字符串统计 连续的某个字符的数量 1.1.4
    USACO twofive 没理解
    1002 All Roads Lead to Rome
    USACO 5.5.1 求矩形并的周长
    USACO 5.5.2 字符串的最小表示法
  • 原文地址:https://www.cnblogs.com/smellpawn/p/10809301.html
Copyright © 2011-2022 走看看