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之间数据不共享 缓存的事件短。缓存效果不明显。

  • 相关阅读:
    HDOJ 1556 线段树
    POJ 3977 折半枚举
    2017ACM省赛选拔赛题解
    关于四舍五入和截断
    POJ 3422 最小费用最大流
    Codeforces Round #407 (Div. 2) D. Weird journey 思维+欧拉
    POJ 3155 最大密度子图
    无向图最小割 stoer_wagner算法
    最大权闭合子图
    L2-001. 紧急救援 Dijkstra
  • 原文地址:https://www.cnblogs.com/smellpawn/p/10809301.html
Copyright © 2011-2022 走看看