1.编写连表sql,注意hql与sql的区别即可
String hql = "select pi.id,pi.nam,pm.mId,pm.mversion from PM pm, PI pi where pm.id=pi.id and pm.mId =:mId";
2.打开查询
QueryParams q = new QueryParams();
q.addParam("mId", mId);
List result = query(hql, q);
Iterator it = result.iterator();
public List query(final String hql, final QueryParams queryParam) {
return (List) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query resultQuery = session.createQuery(hql);
resultQuery.setCacheable(cacheable);
resultQuery = QueryParams.setParams(resultQuery, queryParam);
List reval = resultQuery.list();
return reval;
}
});
}
3.装配查询结果
List<DemoBean> beans = new ArrayList<DemoBean>();
while (it.hasNext()) {
DemoBean bean = new DemoBean();
Object[] tuple = (Object[]) it.next();
bean.setId((Integer)tuple[0]);
bean.setName((String)tuple[1]);
bean.setMId((Integer)tuple[2]);
bean.setMversion((String)tuple[3]);
beans.add(bean);
}
这样整个查询就完成了,简单方便。