首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

关于hibernate3 中bulk delete/update与缓存同步有关问题

2012-11-17 
关于hibernate3 中bulk delete/update与缓存同步问题小弟最近刚学hibernate,看的是深入浅出hibernate一书。

关于hibernate3 中bulk delete/update与缓存同步问题
   小弟最近刚学hibernate,看的是深入浅出hibernate一书。里面碰到一些关于缓存的问题。
建了个简单的表测试 User 里面的字段只有 id 和 name

其中操作User类中(OperatorUser类)有个删除User的方法和获取User的方法如下
//删除User
          


         //获取user
System.out.println(user.getName());
的时候,就要真正去数据库中取了,然后就会抛出没有相应的列的异常了。

数据库没数据是我估计的,说的不一定对。 2 楼 taupo 2008-09-02   因为load方法是延时加载,你用get就会马上抛出异常了 3 楼 lchlrb 2008-09-02       恩,谢谢两位的指点,再在网上查了下关于session.load方法的信息,的确是关于load方法延迟加载的问题,而和缓存没有多大关系,因为两次运行,无论是sessionfactory还是session,两次都不同。

     关于session.load():
          1. load方法会先从内部缓存和二级缓存中查找实体对象,看看缓存中是否存在该对象。session.get()方法也一样。
          2. hibernate中的load方法的加载方式是延迟加载, 返回的是一个实体对象的代理实例,,此时的代理类实例是由运行时动态生成的类,该代理类实例包括原目标对象的所有属性和方法,该代理类实例的属性除了ID不为null外,所在属性为null值,当调用getXXX()方法时,才会真正地到数据库里获得属性值。所以第二次再执行时,会抛出异常!

     谢谢两位的指点。

热点排行