http://dev.yesky.com/423/2335923.shtml

解决方案 »

  1.   

    应该是session内部维护的一个类似hashmap的东东罢,以entity的id为key。
    hibernate是会把所有的查询到的对象都放入一级缓存的,所以load大量数据时可能会outofmemery。可以用session.evit()清除。
      

  2.   

    楼上的各位朋友已经把问题说的很清楚了。http://www.3doing.net/forums/list.asp?boardid=44
    去这里看下,有很多的文章,是关于 hibernate的,可以参考下!
      

  3.   

    感谢大家的帮助。因为对jdbc比较熟悉,想通过jdbc+oscache自己实现缓存方法。如果通过cache自己实现缓存的话,是把缓存实现在数据层,还是页面层好呢,还是两者都实现?(比如请求show.jsp?id=10而产生的产品信息)hibernate看过一些,不是很熟悉,看过一些资料说hibernate对复杂的查询性能不是太好,所以在性能方面不知道hibernate怎么样。
      

  4.   

    数据访问层作cache比较好,瓶颈主要在这里。页面层没必要刻意去做,运行压力测试,发现哪里性能不能满足再去改进。
    hibernate的性能么,没专门做过测试,但实际使用感觉,只要不是特别bt的查询,一般还是能满足需求的(和使用hibernate的方法也有关系,如合理的使用一,二级缓存,对性能的提升还是很大的)。如果查询很复杂的话,用ibatis做也很好,就是混用2者可能会增加系统的复杂性。