Hibernate中get与load,query.list与query.iterate这些都是查询数据的吗?为什么要弄这么多啊?有什么区别
2个回答
展开全部
load查询不到数据会返回ObjectNotFoundExcption,get查询不到返回null,query.list每次都是通过一条语句直接操作数据库取出所有的数据返回(并且将对象存入hibernate缓存);query.iterator首先通过一条语句取出所有数据的id,然后通过id在hibernate的一级缓存中查找是否存在该对象,如果存在则直接取出,如果没有则再次发出一条sql语句通过id取得对象(并且加入到缓存中),这样如果所有的id在缓存中都没有的话就会出现n+1条sql语句的问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询