Hibernate的查询结果只能是一个类吧
比如你用qurey查询,
结果的List中的元素应该是同一个类型的,
否则你自己也很难控制阿.
如果希望将两个表中相关的数据查询出来,
不妨建个VO,将你需要的属性都包括在VO中,
然后select new VO(a.id, b.name) from A a, B b where *****;
比如你用qurey查询,
结果的List中的元素应该是同一个类型的,
否则你自己也很难控制阿.
如果希望将两个表中相关的数据查询出来,
不妨建个VO,将你需要的属性都包括在VO中,
然后select new VO(a.id, b.name) from A a, B b where *****;
返回的就是一个List,list中每行都有2个类啊
{
Session sess = openSession();
StringBuffer sb = new StringBuffer();
sb.append(" select new map(to_char(person.personid) as personid,expoPerson.cardid as cardid,person.name as name,sex.sex as sexname," );
sb.append(" country.countryname as countryname,province.provincename as provincename,team.teamname as teamname,");
sb.append(" company.companyname as companyname,person.placename as placename,cardType.cardtypename as cardtypename,");
sb.append(" certType.cncerttypename as certtypename, person.cardnum as certtypenum,file.filename as filename,teamuser.username as teamusername");
sb.append(" )");
sb.append(" from TExpoPerson as expoPerson ");
sb.append(" inner join expoPerson.person as person ");
sb.append(" inner join person.user as user ");
sb.append(" inner join user.company as company ");
sb.append(" inner join person.sex as sex ");
sb.append(" inner join expoPerson.roleCard as roleCard");
sb.append(" inner join roleCard.cardType as cardType");
sb.append(" left join company.team as team");
sb.append(" left join team.user as teamuser");
sb.append(" left join person.country as country");
sb.append(" left join person.province as province");
sb.append(" left join person.certType as certType");
sb.append(" left join person.fileSet as file");
sb.append(" where expoPerson.status.statusid = ?");
sb.append(" and expoPerson.cardaudittime is not null");
sb.append(" and expoPerson.carddone is null");
sb.append(" and expoPerson.carddelivered is null");
sb.append(" and expoPerson.cardshamdeltime is null");
sb.append(" and expoPerson.carddeletetime is null");
sb.append(" and expoPerson.cardmade is null");
sb.append(" and person.deletetime is null");
sb.append(" order by cardType.cardtypename asc");
Query q = sess.createQuery(sb.toString());
q.setLong(0,new Long(statusid));
List list = q.list();
String date = DateUtil.getDateTime("yyyy-MM-dd HH:mm:ss",new Date());
Map map = null;
int iLen = list.size();
if(iLen > 0)
{
for(Object o :list)
{
map = new HashMap();
map = (Map)o;
map.put("expExcelTime",date);
}
}
return list;
}