[hibernate3]lab sysem项目一些建议

[hibernate3]lab sysem项目一些建议

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(); 

你可能感兴趣的:([hibernate3]lab sysem项目一些建议)