在DaoHibernate多表查询:
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.stereotype.Repository;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@Repository
public class VipLogDaoHibernate extends DaoSupport<VipLog> implements VipLogDao {
private static final long serialVersionUID = 1L;
public List<VipLog> getVipActivateLog(final Pager pager){
return getHibernateTemplate().execute(new HibernateCallback<List<VipLog>>() {
@Override
public List<VipLog> doInHibernate(Session session) throws HibernateException, SQLException {
String where ="";
String userName = (String) pager.getQuery().get("userName");
if (!StringUtils.isEmpty(userName)){
where += " and u.userName like '%"+userName+"%'";
}
List<VipLog> vipLogList = null;
String HQL = " from VipLog v,Users u where v.openId=u.openid"+where;
int total = getTotal(HQL);
pager.setTotalNum(total);
Query query = session.createQuery(HQL);
query.setMaxResults(pager.getPageSize());
query.setFirstResult(pager.getFirstRow());
List<Object[]> resultList = query.list();
if (resultList!=null && !resultList.isEmpty()){
vipLogList = new ArrayList<VipLog>(resultList.size());
for (Object[] objects : resultList) {
VipLog vipLog = (VipLog)objects[0];
Users u = (Users)objects[1];
vipLog.setUsers(u);
vipLogList.add(vipLog);
}
}
return vipLogList;
}
});
}
}