`
jiaguwen123
  • 浏览: 406525 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

hibernate查询多对多数据范例

阅读更多

public class StuDao<T> extends BaseDao {
 private TeaDao<Teachers> teaDao = new TeaDao<Teachers>();

 /*
  * 查询多对多数据
  */
 public Map<String, List<T>> queryAllStudentsInfo(boolean isQuerySingle,
   Integer stuId) {
  Map<String, List<T>> map = new HashMap<String, List<T>>();
  List<Teachers> teaList = new ArrayList<Teachers>();
  Session session = super.getSession();
  List<Students> stuList = null;
  if (isQuerySingle) {
   stuList = session.createQuery(" from Students s where s.stuid=?")
     .setInteger(0, stuId).list();
  } else {
   stuList = session.createQuery(" from Students s").list();
  }
  int listSize = stuList.size();
  for (int i = 0; i < listSize; i++) {
   Students stu = stuList.get(i);
   Set<Teachers> teaSet = stu.getTeachers();
   Iterator<Teachers> ite = teaSet.iterator();
   while (ite.hasNext()) {
    Teachers queryTea = ite.next();
    Teachers newTea = new Teachers();
    Integer teaId = queryTea.getTeaid();
    String teaName = queryTea.getTeaname();
    newTea.setTeaid(teaId);
    newTea.setTeaname(teaName);
    newTea.getStudents().add(stu);
    teaList.add(newTea);
   }
  }
  map.put("students", (List<T>) stuList);
  map.put("teachers", (List<T>) teaList);
  return map;
 }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics