小方的Java博客

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  27 随笔 :: 17 文章 :: 115 评论 :: 0 Trackbacks

1.有个大大提高性能的建议:

比如得到list 是5个班级,然后要得到5个班级的所有学生

垃圾办法:5次通过级联获得,等于执行5条sql语句

好办法:

this .getSession().createQuery(
        
" from User a,Clazz b where a.clazz=b and b in(:clazz) " )
 .setParameterList(
" clazz " , list)
 .list();

仅执行一条


2.还有个很实用的方法,如何通过hql语句返回多个po

List list  =   this .getSession().createQuery(
 
" from User a,Clazz b where a.clazz=b " ).list();

// 使用的时候:
Iterator it  =  list.iterator();
  
while (it.hasNext()){
 Object[] vo 
=  (Object[])it.next();
 User user 
=  (User)vo[ 0 ];
 Clazz clazz 
=  (Clazz)vo[ 1 ];
 System.out.println(user.getUserName() 
+   " , "   +  clazz.getClassName());



3.我们全部用一对一,多对一等。如果过滤有问题,有个办法

List students  =   this .getSession().createFilter(clazz.getStudents(), " where this.status='A' " ).list(); 
posted on 2007-02-14 23:30 方佳玮 阅读(473) 评论(0)  编辑  收藏 所属分类: 开发经验点滴

只有注册用户登录后才能发表评论。


网站导航: