hibernate list和iterate 的区别 get和load的区别
来源:互联网 发布:烈焰遮天全套完整源码 编辑:程序博客网 时间:2024/06/03 20:33
list 与iterate:
1 list是立刻查询 iterate使用延迟加载,有可能会产生n+1次查询
Session session=HibernateSessionFactory.getSession();
System.out.println("1:"+session);
session.beginTransaction();
Query query1=session.createQuery("from Books where id=7");
List<Books> list=query1.list();
/*System.out.println("2:"+session);
for(Books b:list){
System.out.println(b.getAuthor()+" "+b.getName());
}*/
Query query=session.createQuery("from Books where id<7");
Iterator<Books> books=query.iterate();
System.out.println("3:"+session);
while(books.hasNext()){
Books book=books.next();
book.getName();
}
session.getTransaction().commit();
HibernateSessionFactory.closeSession();
System.out.println("4:"+session);
2 list对1级缓存可写不可读
iterate对1级缓存可写可读
Session session=HibernateSessionFactory.getSession();
System.out.println("1:"+session);
session.beginTransaction();
Query query1=session.createQuery("from Books");
Iterator<Books> books=query1.iterate();
System.out.println("2:"+session);
while(books.hasNext()){
Books book=books.next();
book.getName();
System.out.println("3:"+session);
}
/*System.out.println("2:"+session);
for(Books b:list){
System.out.println(b.getAuthor()+" "+b.getName());
}*/
Query query=session.createQuery("from Books ");
Iterator<Books> books1=query.iterate();
System.out.println("3:"+session);
while(books1.hasNext()){
Books book=books1.next();
book.getName();
System.out.println("3:"+session);
}
session.getTransaction().commit();
HibernateSessionFactory.closeSession();
System.out.println("4:"+session);
}
get与load:
1 get是立刻加载 load是延迟加载,load的时候只是返回了一个proxy对象,
这个代理对象中只有id,没有其他数据,只有在触发必须查询点时才查询数据库
Session session=HibernateSessionFactory.getSession();
System.out.println("1:"+session);
session.beginTransaction();
Books b1=(Books)session.load(Books.class, 2);
b1.getName();
System.out.println("2:"+session);
Books b2=(Books)session.get(Books.class, 3);
System.out.println("3:"+session);
session.getTransaction().commit();
HibernateSessionFactory.closeSession();
System.out.println("4:"+session);
2 get假如获取不到具体数据,接着对对象进行操作,报空指针异常
load假如获取不到具体数据,报ObjectNotFoundException
Session session=HibernateSessionFactory.getSession();
System.out.println("1:"+session);
session.beginTransaction();
Books b1=(Books)session.load(Books.class, 2);
b1.getName();
System.out.println("2:"+session);
Books b2=(Books)session.get(Books.class, 3);
System.out.println("3:"+session);
session.getTransaction().commit();
HibernateSessionFactory.closeSession();
b2.getAuthor();
System.out.println("4:"+session);
}
3 get 对1级缓存可读可写
load对1级缓存可读可写
Session session=HibernateSessionFactory.getSession();
System.out.println("1:"+session);
session.beginTransaction();
Books b1=(Books)session.load(Books.class, 2);
b1.getName();
System.out.println("2:"+session);
Books b2=(Books)session.get(Books.class, 3);
System.out.println("3:"+session);
session.getTransaction().commit();
HibernateSessionFactory.closeSession();
b2.getAuthor();
System.out.println("4:"+session);
}
- hibernate list和iterate 的区别 get和load的区别
- Hibernate之查询中get()和load()的区别,list()和iterate()的区别
- hibernate的list和iterate的区别
- hibernate的list和iterate的区别
- hibernate的list和iterate的区别
- Hibernate中list()和iterate()的区别
- hibernate list和iterate的区别
- hibernate查询的list和iterate的区别
- Hibernate Query 的 list 和iterate方法缓存的区别
- 【Hibernate学习笔记】list和iterate的区别
- Hibernate的get和load的区别
- Hibernate的get和load的区别
- Hibernate的get和load的区别
- hibernate的load和get的区别
- hibernate的load()和get()的区别
- hibernate的load()和get()的区别
- hibernate中list()与iterate()、get()与load()区别
- Hibernate中load和get的区别
- SQL查询入门(下篇)
- 《C关键字分析》之sizeof,enum、union和struct
- typeid及RTTI
- 社团发现算法研究和在SNS网络中的应用
- webx3.x之多语言支持扩展
- hibernate list和iterate 的区别 get和load的区别
- Android 实现View的渐隐渐现功能
- .net中using指令用法
- 【math】梯度(gradient)、雅克比矩阵(Jacobian)、海森矩阵(Hessian)
- C51浮点数显示、浮点数表示方法
- 解决mysql Access denied for user 'root'@'localhost'
- Spring MVC 通过@ResponseBody标签返回JSON数据 报406错误的解决方法
- 应用托管在SAE,不登录也能通过 phpmyadmin 管理数据库
- hadoop2.0 mvn compile -Pnative error