本帖最后由 mybeta 于 2012-05-29 09:56:29 编辑

解决方案 »

  1.   

    get 会查DB,所以有SQL。load不会查DB,只是在缓存中查找。所以没SQL。
      

  2.   

    1.get()采用立即加载方式,而load()采用延迟加载;
      get()方法执行的时候,会立即向数据库发出查询语句,
      而load()方法返回的是一个代理(此代理中只有一个id属性),只有等真正使用该对象属性的时候,才会发出sql语句
      2.如果数据库中没有对应的记录,get()方法返回的是null.而load()方法出现异常ObjectNotFoundException
      

  3.   

    楼上正解
    load()方法可以充分利用二级缓存和内部缓存的现有数据,而get()方法只在内部缓存中进行查找,如没有发现对应数据将跳过二级缓存,直接调用SQL完成查找
      

  4.   

    哎,我以为get和load有什么稀奇的呢,还是这样的话题,