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;
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值