Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询
package com.ucap.netcheck.dao.impl;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.ucap.netcheck.combination.beans.MainPageResultCombinationBean;
import com.ucap.netcheck.common.Page;
import com.ucap.netcheck.common.dao.BaseDAO;
import com.ucap.netcheck.dao.ISingleRejectDao;
import com.ucap.netcheck.entity.MainPageScanFail;
import com.ucap.netcheck.entity.MainPageScanResult;
import com.ucap.netcheck.exception.DAOException;
/**
* @Title: CheckMainPageResultDaoImpl.java
* @Package com.ucap.netcheck.dao.impl
* @Description:
* @author
* @date 2015-4-8 下午5:04:34
* @version V1.0
*/
@Repository
@Transactional
public class SingleRejectDaoImpl extends BaseDAO implements ISingleRejectDao {
@Autowired
private SessionFactory sessionFactory;
@SuppressWarnings("unchecked")
public MainPageScanResult queryMainPageScanResultUnique(Object... params) {
try {
String sql = "FROM MainPageScanResult m "
+ "WHERE m.errorPercent > 5.0 " + "and m.innerUUID =? "
+ "and m.taskId =? ";
Session session = sessionFactory.getCurrentSession();
List<MainPageScanResult> list = session.createQuery(sql)
.setParameter(0,(String)params[0])
.setParameter(1,(Integer)params[1])
.list();
if (!list.isEmpty()) {
return list.get(0);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* queryMainPageScanFailById(通过这个方法实现查找首页扫描失败的结果)
*
* @Title: queryMainPageScanFailById
* @Description:
* @param @param pageNo
* @param @param pageRow
* @param @param id
* @param @return 设定文件
* @return Page 返回类型
* @throws
*/
public Page queryMainPageScanFailById(int pageNo, int pageRow,Integer id) {
try {
List<Object> params = new ArrayList<Object>();
String hql = "FROM MainPageScanFail m WHERE m.mainPageScanId = ? ";
params.add(id);
Page page = this.queryByPage(hql, pageNo, pageRow, params);
return page;
} catch (Exception e) {
throw new DAOException("分页查询所有->ERROR", e);
}
}
@SuppressWarnings("unchecked")
public List<MainPageScanFail> queryMainPageScanFailListById(Integer id) {
try {
String hql = "FROM MainPageScanFail m WHERE m.mainPageScanId =:mainPageScanId ";
List<MainPageScanFail> list = sessionFactory.getCurrentSession()
.createQuery(hql)
.setParameter("mainPageScanId", id)
.list();
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* queryMainPageScaneResultStatistics(这个方法实现对这个表的信息进行统计)
*
* @Title: queryMainPageScaneResultStatistics
* @Description: 这个方法实现对这个表的信息进行统计
* @param @param objs
* @param @return 设定文件
* @return Page<MainPageScanResult> 返回类型
* @throws
*/
@SuppressWarnings("unchecked")
public MainPageResultCombinationBean queryMainPageScaneResultStatistics(
Object... objs) {
try {
String hql = "SELECT new com.ucap.netcheck.combination.beans.MainPageResultCombinationBean("
+ " min(m.taskStartTime),max(m.taskEndTime),count(m.innerUUID),max(m.totalScanNum),max(m.failNum)) "
+ " FROM "
+ MainPageScanResult.class.getSimpleName()
+ " m WHERE m.innerUUID = ? " + " AND m.taskId = ? ";
List<MainPageResultCombinationBean> list = sessionFactory
.getCurrentSession().createQuery(hql)
.setParameter(0, (String) objs[0]).setParameter(1, objs[1])
.list();
return (!list.isEmpty() ? (MainPageResultCombinationBean) list
.get(0) : null);
} catch (Exception e) {
throw new DAOException("分页查询所有->ERROR", e);
}
}
@SuppressWarnings({ "rawtypes", "unchecked"})
@Override
public Page queryMainPageUpdateResultByPage(int pageNo, int pageRow,
Object... objs) {
try {
StringBuilder sql = new StringBuilder(
"SELECT " +
"cm.id AS id," +
"cm.TASK_Id AS taskId," +
"cm.innerUUID AS innerUUID," +
"cm.checkSysTaskId AS checkSysTaskId," +
"cm.URL AS URL," +
"cm.first_channel AS firstChannel," +
"cm.second_channel AS secondChannel," +
"cm.chanel_name AS chanelName," +
"cm.TITLE AS title," +
"cm.IMG_Url AS imgURL," +
"cm.lastModifyTime AS lastModifyTime, " +
"cm.SHOW_TIME AS showTime," +
"cm.scanTime AS scanTime," +
"cm.isReject AS isReject " +
"FROM cpu_mp AS cm " +
"WHERE cm.innerUUID =? " +
"AND cm.TASK_ID =? " +
"AND cm.isReject = 1 "
);
Query query = sessionFactory
.getCurrentSession()
.createSQLQuery(sql.toString())
.setParameter(0, (String) objs[0])
.setParameter(1, (Integer)objs[1]);
Page page = new Page();
page.setPageNum(pageNo);
page.setNumPerPage(pageRow);
page.setAllRows(query.list().size());
int allPages = page.getAllRows() / page.getNumPerPage();
if (page.getAllRows() % page.getNumPerPage() == 0) {
page.setAllPages(allPages); // 总页数
} else {
page.setAllPages(allPages + 1); // 总页数
}
query.setFirstResult((pageNo - 1) * pageRow);
query.setMaxResults(pageRow);
//集合
List<Object[]> list = query.list();
page.setRecordList(list);
return page;
} catch (Exception e) {
throw new DAOException("分页查询所有->ERROR", e);
}
}
@SuppressWarnings({"unchecked"})
@Override
public List<Object[]> queryMainPageUpdateResultByCondition(Object... objs) {
try {
StringBuilder sql = new StringBuilder(
"SELECT " +
"cm.id AS id," +
"cm.TASK_Id AS taskId," +
"cm.innerUUID AS innerUUID," +
"cm.checkSysTaskId AS checkSysTaskId," +
"cm.URL AS URL," +
"cm.first_channel AS firstChannel," +
"cm.second_channel AS secondChannel," +
"cm.chanel_name AS chanelName," +
"cm.TITLE AS title," +
"cm.IMG_Url AS imgURL," +
"cm.lastModifyTime AS lastModifyTime, " +
"cm.SHOW_TIME AS showTime," +
"cm.scanTime AS scanTime," +
"cm.isReject AS isReject " +
"FROM cpu_mp AS cm " +
"WHERE cm.innerUUID =? " +
"AND cm.TASK_ID =? " +
"AND cm.isReject = 1 "
);
Query query = sessionFactory
.getCurrentSession()
.createSQLQuery(sql.toString())
.setParameter(0, (String) objs[0])
.setParameter(1, (Integer)objs[1]);
//集合
List<Object[]> list = query.list();
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。