List of usage examples for org.hibernate SQLQuery scroll
ScrollableResults scroll();
From source file:net.chrisrichardson.foodToGo.domain.hibernate.HibernateOrderRepositoryImpl.java
License:Apache License
List findOrdersUsingSQLAndScroll() { return (List) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { SQLQuery query = makeSqlQuery(session); ScrollableResults results = query.scroll(); List orders = getOrdersFromScrollableResults(results); Order o = (Order) orders.get(0); return orders; }//from w w w.j a va 2s. c o m }); }
From source file:resource.dao.base.HQLDAO.java
public Object doInHibernate(Session session) throws HibernateException { if (logger.isDebugEnabled()) { logger.debug("doInHibernate(Session) - start"); //$NON-NLS-1$ }/*from ww w . j a v a 2 s.co m*/ SQLQuery queryObject = session.createSQLQuery(queryCondition.getQueryString()); Object[] values = queryCondition.getObjArray(); Type[] types = queryCondition.getTypeArray(); if (null != values) { for (int i = 0; i < values.length; i++) { if (logger.isDebugEnabled()) { logger.debug("i=" + i); logger.debug("values[i]=" + values[i]); logger.debug("types[i]=" + types[i]); } if (types != null) { queryObject.setParameter(i, values[i], types[i]); } else { queryObject.setParameter(i, values[i]); } } } ScrollableResults sr = null; try { PageQueryResult queryResult = new PageQueryResult(); queryResult.setQueryResult(new ArrayList()); queryResult.setTotalCount(0); sr = queryObject.scroll(); if (false == sr.last()) { if (logger.isDebugEnabled()) { logger.debug("doInHibernate(Session) - end"); //$NON-NLS-1$ } return queryResult; } int totalCount = sr.getRowNumber(); queryResult.setTotalCount(totalCount + 1); int pageSize = queryCondition.getPageSize(); int pageIndex = queryCondition.getPageIndex() - 1; int startRowNum = pageIndex * pageSize; if (false == sr.setRowNumber(startRowNum)) { if (logger.isDebugEnabled()) { logger.debug("doInHibernate(Session) - end"); //$NON-NLS-1$ } return queryResult; } List list = queryResult.getQueryResult(); for (int i = 0; i < pageSize; i++) { list.add(sr.get()); if (false == sr.next()) { break; } } if (logger.isDebugEnabled()) { logger.debug("doInHibernate(Session) - end"); //$NON-NLS-1$ } return queryResult; } finally { if (null != sr) sr.close(); } }
From source file:ubic.gemma.persistence.service.expression.experiment.ExpressionExperimentDaoImpl.java
License:Apache License
@Override public Collection<ExpressionExperiment> findByExpressedGene(Gene gene, Double rank) { //language=MySQL final String queryString = "SELECT DISTINCT ee.ID AS eeID FROM " + "GENE2CS g2s, COMPOSITE_SEQUENCE cs, PROCESSED_EXPRESSION_DATA_VECTOR dedv, INVESTIGATION ee " + "WHERE g2s.CS = cs.ID AND cs.ID = dedv.DESIGN_ELEMENT_FK AND dedv.EXPRESSION_EXPERIMENT_FK = ee.ID" + " AND g2s.gene = :geneID AND dedv.RANK_BY_MEAN >= :rank"; Collection<Long> eeIds; try {//from w w w . j a va2s. c o m Session session = this.getSessionFactory().getCurrentSession(); org.hibernate.SQLQuery queryObject = session.createSQLQuery(queryString); queryObject.setLong("geneID", gene.getId()); queryObject.setDouble("rank", rank); queryObject.addScalar("eeID", new LongType()); ScrollableResults results = queryObject.scroll(); eeIds = new HashSet<>(); // Post Processing while (results.next()) eeIds.add(results.getLong(0)); session.clear(); } catch (org.hibernate.HibernateException ex) { throw super.convertHibernateAccessException(ex); } return this.load(eeIds); }
From source file:ubic.gemma.persistence.service.expression.experiment.ExpressionExperimentDaoImpl.java
License:Apache License
@Override public Collection<ExpressionExperiment> findByGene(Gene gene) { /*//from w ww . j av a 2 s . c o m * uses GENE2CS table. */ //language=MySQL final String queryString = "SELECT DISTINCT ee.ID AS eeID FROM " + "GENE2CS g2s, COMPOSITE_SEQUENCE cs, ARRAY_DESIGN ad, BIO_ASSAY ba, INVESTIGATION ee " + "WHERE g2s.CS = cs.ID AND ad.ID = cs.ARRAY_DESIGN_FK AND ba.ARRAY_DESIGN_USED_FK = ad.ID AND" + " ba.EXPRESSION_EXPERIMENT_FK = ee.ID AND g2s.GENE = :geneID"; Collection<Long> eeIds; Session session = this.getSessionFactory().getCurrentSession(); org.hibernate.SQLQuery queryObject = session.createSQLQuery(queryString); queryObject.setLong("geneID", gene.getId()); queryObject.addScalar("eeID", new LongType()); ScrollableResults results = queryObject.scroll(); eeIds = new HashSet<>(); while (results.next()) { eeIds.add(results.getLong(0)); } return this.load(eeIds); }