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