Java 类org.hibernate.ScrollableResults 实例源码
项目:Equella
文件:EntityDisabledFieldMigration.java
@Override
protected void executeDataMigration(HibernateMigrationHelper helper, MigrationResult result, Session session)
{
session.createQuery("UPDATE BaseEntity SET disabled = false").executeUpdate();
result.incrementStatus();
ScrollableResults scroll = session
.createQuery(
"FROM BaseEntity be LEFT JOIN be.attributes att WHERE att.key = :archived AND att.value = :true")
.setParameter("archived", KEY_ARCHIVED).setParameter("true", "true").scroll();
while( scroll.next() )
{
FakeBaseEntity be = (FakeBaseEntity) scroll.get(0);
be.disabled = true;
session.save(be);
session.flush();
session.clear();
result.incrementStatus();
}
}
项目:Equella
文件:UpdateDefaultMimeTypeIcons.java
@Override
protected void executeDataMigration(HibernateMigrationHelper helper, MigrationResult result, Session session)
throws Exception
{
ScrollableResults results = session.createQuery(
"FROM MimeEntryAttributes WHERE element LIKE '%.gif' AND mapkey = 'PluginIconPath' ").scroll();
while( results.next() )
{
Object[] resultEntry = results.get();
FakeMimeEntryAttributes fmeAttr = (FakeMimeEntryAttributes) resultEntry[0];
fmeAttr.element = fmeAttr.element.replaceAll(".gif", ".png");
session.save(fmeAttr);
session.flush();
session.clear();
}
}
项目:Equella
文件:QtiAssessmentResultDaoImpl.java
@Override
public Iterator<QtiAssessmentResult> getIterator()
{
final ScrollableResults cinnamonScroll = (ScrollableResults) getHibernateTemplate()
.execute(new HibernateCallback()
{
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException
{
final Query query = getAllQuery(session);
query.setReadOnly(true);
return query.scroll(ScrollMode.FORWARD_ONLY);
}
});
return new ScrollableResultsIterator<QtiAssessmentResult>(cinnamonScroll);
}
项目:Equella
文件:QtiItemResultDaoImpl.java
@Override
public Iterator<QtiItemResult> getIterator()
{
final ScrollableResults cinnamonScroll = (ScrollableResults) getHibernateTemplate()
.execute(new HibernateCallback()
{
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException
{
final Query query = getAllQuery(session);
query.setReadOnly(true);
return query.scroll(ScrollMode.FORWARD_ONLY);
}
});
return new ScrollableResultsIterator<QtiItemResult>(cinnamonScroll);
}
项目:Equella
文件:QtiAssessmentItemDaoImpl.java
@Override
public Iterator<QtiAssessmentItem> getIterator()
{
final ScrollableResults cinnamonScroll = (ScrollableResults) getHibernateTemplate()
.execute(new HibernateCallback()
{
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException
{
final Query query = session.createQuery("FROM QtiAssessmentItem WHERE institution = :institution");
query.setParameter("institution", CurrentInstitution.get());
query.setReadOnly(true);
return query.scroll(ScrollMode.FORWARD_ONLY);
}
});
return new ScrollableResultsIterator<QtiAssessmentItem>(cinnamonScroll);
}
项目:Equella
文件:AddTaskStartDate.java
@Override
protected void executeDataMigration(HibernateMigrationHelper helper, MigrationResult result, Session session)
{
ScrollableResults scroll = session.createQuery(QUERY).scroll();
while( scroll.next() )
{
FakeWorkflowItemStatus item = (FakeWorkflowItemStatus) scroll.get(0);
if( item.dateDue != null )
{
item.started = new Date(item.dateDue.getTime() - TimeUnit.DAYS.toMillis(item.wnode.escalationdays));
}
else
{
item.started = new Date();
}
session.save(item);
session.flush();
session.clear();
result.incrementStatus();
}
}
项目:Equella
文件:AddLastActionDate.java
@Override
protected void executeDataMigration(HibernateMigrationHelper helper, MigrationResult result, Session session)
{
Query query = session
.createQuery("select i.id, i.moderation.id from Item i where moderating = true or status = 'rejected'");
ScrollableResults results = query.scroll();
while( results.next() )
{
Query upQuery = session
.createQuery("update ModerationStatus m set lastAction = "
+ "(select max(h.date) from Item i join i.history h where i.id = ? and h.type in ('approved','rejected', 'comment') group by i.id) "
+ "where m.id = ?");
upQuery.setParameter(0, results.get(0));
upQuery.setParameter(1, results.get(1));
upQuery.executeUpdate();
}
}
项目:Equella
文件:MigrateNotifications2.java
@Override
protected void executeDataMigration(HibernateMigrationHelper helper, MigrationResult result, Session session)
{
ScrollableResults scroll = session.createQuery("from Notification").scroll();
while( scroll.next() )
{
FakeNotification note = (FakeNotification) scroll.get(0);
if( note.reason.equals("review") )
{
session.delete(note);
}
else
{
note.itemidOnly = note.itemid;
note.processed = true;
note.batched = false;
session.save(note);
}
session.flush();
session.clear();
result.incrementStatus();
}
}
项目:Equella
文件:ConstraintToAvoidDuplicateNotificationsMigration.java
@Override
protected void executeDataMigration(HibernateMigrationHelper helper, MigrationResult result, Session session)
{
// Find dupes and kill them (keep the latest one)
final ScrollableResults dupes = session.createQuery(getDupesFrom() + " ORDER BY n.date DESC").scroll(
ScrollMode.FORWARD_ONLY);
final Set<String> visited = Sets.newHashSet();
while( dupes.next() )
{
final FakeNotification dupe = (FakeNotification) dupes.get(0);
final String key = dupe.itemid + dupe.reason + dupe.userTo + dupe.institution.id;
// Ignore the most recent notification, we'll keep this one
if( !visited.contains(key) )
{
visited.add(key);
}
else
{
session.delete(dupe);
session.flush();
session.clear();
}
result.incrementStatus();
}
}
项目:lams
文件:HQLQueryPlan.java
/**
* Coordinates the efforts to perform a scroll across all the included query translators.
*
* @param queryParameters The query parameters
* @param session The session
*
* @return The query result iterator
*
* @throws HibernateException Indicates a problem performing the query
*/
public ScrollableResults performScroll(
QueryParameters queryParameters,
SessionImplementor session) throws HibernateException {
if ( TRACE_ENABLED ) {
LOG.tracev( "Iterate: {0}", getSourceQuery() );
queryParameters.traceParameters( session.getFactory() );
}
if ( translators.length != 1 ) {
throw new QueryException( "implicit polymorphism not supported for scroll() queries" );
}
if ( queryParameters.getRowSelection().definesLimits() && translators[0].containsCollectionFetches() ) {
throw new QueryException( "firstResult/maxResults not supported in conjunction with scroll() of a query containing collection fetches" );
}
return translators[0].scroll( queryParameters, session );
}
项目:lams
文件:SessionImpl.java
@Override
public ScrollableResults scroll(Criteria criteria, ScrollMode scrollMode) {
// TODO: Is this guaranteed to always be CriteriaImpl?
CriteriaImpl criteriaImpl = (CriteriaImpl) criteria;
errorIfClosed();
checkTransactionSynchStatus();
String entityName = criteriaImpl.getEntityOrClassName();
CriteriaLoader loader = new CriteriaLoader(
getOuterJoinLoadable(entityName),
factory,
criteriaImpl,
entityName,
getLoadQueryInfluencers()
);
autoFlushIfRequired( loader.getQuerySpaces() );
dontFlushFromFind++;
try {
return loader.scroll(this, scrollMode);
}
finally {
delayedAfterCompletion();
dontFlushFromFind--;
}
}
项目:lams
文件:SessionImpl.java
@Override
public ScrollableResults scrollCustomQuery(CustomQuery customQuery, QueryParameters queryParameters)
throws HibernateException {
errorIfClosed();
checkTransactionSynchStatus();
if ( LOG.isTraceEnabled() ) {
LOG.tracev( "Scroll SQL query: {0}", customQuery.getSQL() );
}
CustomLoader loader = new CustomLoader( customQuery, getFactory() );
autoFlushIfRequired( loader.getQuerySpaces() );
dontFlushFromFind++; //stops flush being called multiple times if this method is recursively called
try {
return loader.scroll(queryParameters, this);
}
finally {
delayedAfterCompletion();
dontFlushFromFind--;
}
}
项目:lams
文件:SQLQueryImpl.java
public ScrollableResults scroll(ScrollMode scrollMode) throws HibernateException {
verifyParameters();
before();
Map namedParams = getNamedParams();
NativeSQLQuerySpecification spec = generateQuerySpecification( namedParams );
QueryParameters qp = getQueryParameters( namedParams );
qp.setScrollMode( scrollMode );
try {
return getSession().scroll( spec, qp );
}
finally {
after();
}
}
项目:lams
文件:StatelessSessionImpl.java
@Override
public ScrollableResults scroll(Criteria criteria, ScrollMode scrollMode) {
// TODO: Is this guaranteed to always be CriteriaImpl?
CriteriaImpl criteriaImpl = (CriteriaImpl) criteria;
errorIfClosed();
String entityName = criteriaImpl.getEntityOrClassName();
CriteriaLoader loader = new CriteriaLoader(
getOuterJoinLoadable( entityName ),
factory,
criteriaImpl,
entityName,
getLoadQueryInfluencers()
);
return loader.scroll(this, scrollMode);
}
项目:OperatieBRP
文件:ToegangLeveringsAutorisatieConversie.java
void converteerToegangLeveringsautorisaties() {
final Session session = (Session) entityManager.getDelegate();
final ScrollableResults scResults = session.createCriteria(ToegangLeveringsAutorisatie.class).scroll(ScrollMode.FORWARD_ONLY);
while (scResults.next()) {
final ToegangLeveringsAutorisatie toegang = (ToegangLeveringsAutorisatie) scResults.get(0);
if (Stelsel.GBA == toegang.getLeveringsautorisatie().getStelsel()) {
if (toegang.getLeveringsautorisatie().getDatumEinde() != null) {
LOGGER.warn("ToegangLeveringsAutorisatie met id {} wordt niet geconverteerd, "
+ "want leveringsautorisatie '{}' met id {} is niet geldig",
toegang.getId(),
toegang.getLeveringsautorisatie().getNaam(),
toegang.getLeveringsautorisatie().getId());
continue;
}
converteerToegangLeveringsAutorisatie(toegang);
entityManager.flush();
entityManager.clear();
}
}
}
项目:openbravo-brazil
文件:ProductCharacteristicEventHandler.java
private void deleteProductCharacteristicValue(ProductCharacteristic productCharacteristic) {
ScrollableResults scroll = null;
try {
OBCriteria<ProductCharacteristicValue> criteria = OBDal.getInstance().createCriteria(
ProductCharacteristicValue.class);
criteria.add(Restrictions.eq(ProductCharacteristicValue.PROPERTY_CHARACTERISTIC,
productCharacteristic.getCharacteristic()));
criteria.add(Restrictions.eq(ProductCharacteristicValue.PROPERTY_PRODUCT,
productCharacteristic.getProduct()));
scroll = criteria.scroll(ScrollMode.FORWARD_ONLY);
int i = 0;
while (scroll.next()) {
ProductCharacteristicValue productCharacteristicValue = (ProductCharacteristicValue) scroll
.get(0);
OBDal.getInstance().remove(productCharacteristicValue);
i++;
if (i % 100 == 0) {
OBDal.getInstance().flush();
OBDal.getInstance().getSession().clear();
}
}
} finally {
scroll.close();
}
}
项目:openbravo-brazil
文件:FinancialUtils.java
/**
* Get all the payment details with available credit
*/
public static ScrollableResults getPaymentsWithCredit(String businessPartnerId, String currencyId) {
StringBuilder hql = new StringBuilder();
hql.append(" SELECT t1." + FIN_Payment.PROPERTY_ID);
hql.append(" FROM " + FIN_Payment.ENTITY_NAME + " as t1");
hql.append(" WHERE t1." + FIN_Payment.PROPERTY_BUSINESSPARTNER + ".id = :businessPartnerId");
hql.append(" AND t1." + FIN_Payment.PROPERTY_CURRENCY + ".id = :currencyId");
hql.append(" AND t1." + FIN_Payment.PROPERTY_GENERATEDCREDIT + " <> 0");
hql.append(" AND t1." + FIN_Payment.PROPERTY_GENERATEDCREDIT + " <> t1."
+ FIN_Payment.PROPERTY_USEDCREDIT);
final Query query = OBDal.getInstance().getSession().createQuery(hql.toString());
query.setParameter("businessPartnerId", businessPartnerId);
query.setParameter("currencyId", currencyId);
ScrollableResults scroll = query.scroll(ScrollMode.SCROLL_SENSITIVE);
return scroll;
}
项目:openbravo-brazil
文件:CostAdjustmentProcess.java
private void initializeLines(CostAdjustment costAdjustment) {
// initialize is related transaction adjusted flag to false
OBCriteria<CostAdjustmentLine> critLines = OBDal.getInstance().createCriteria(
CostAdjustmentLine.class);
critLines.add(Restrictions.eq(CostAdjustmentLine.PROPERTY_COSTADJUSTMENT, costAdjustment));
critLines.add(Restrictions.eq(CostAdjustmentLine.PROPERTY_ISRELATEDTRANSACTIONADJUSTED, true));
ScrollableResults lines = critLines.scroll(ScrollMode.FORWARD_ONLY);
long count = 1L;
try {
while (lines.next()) {
CostAdjustmentLine line = (CostAdjustmentLine) lines.get(0);
line.setRelatedTransactionAdjusted(false);
OBDal.getInstance().save(line);
if (count % 1000 == 0) {
OBDal.getInstance().flush();
OBDal.getInstance().getSession().clear();
}
count++;
}
OBDal.getInstance().flush();
OBDal.getInstance().getSession().clear();
} finally {
lines.close();
}
}
项目:openbravo-brazil
文件:CostingRuleProcess.java
private void updateInitInventoriesTrxDate(Date startingDate, String ruleId) {
StringBuffer where = new StringBuffer();
where.append(" as trx");
where.append(" join trx." + MaterialTransaction.PROPERTY_PHYSICALINVENTORYLINE + " as il");
where.append(" where il." + InventoryCountLine.PROPERTY_PHYSINVENTORY + ".id IN (");
where.append(" select cri." + CostingRuleInit.PROPERTY_INITINVENTORY + ".id");
where.append(" from " + CostingRuleInit.ENTITY_NAME + " as cri");
where.append(" where cri." + CostingRuleInit.PROPERTY_COSTINGRULE + ".id = :cr");
where.append(" )");
OBQuery<MaterialTransaction> trxQry = OBDal.getInstance().createQuery(
MaterialTransaction.class, where.toString());
trxQry.setNamedParameter("cr", ruleId);
trxQry.setFetchSize(1000);
ScrollableResults trxs = trxQry.scroll(ScrollMode.FORWARD_ONLY);
int i = 0;
while (trxs.next()) {
MaterialTransaction trx = (MaterialTransaction) trxs.get(0);
trx.setTransactionProcessDate(startingDate);
OBDal.getInstance().save(trx);
if ((i % 100) == 0) {
OBDal.getInstance().flush();
OBDal.getInstance().getSession().clear();
}
}
trxs.close();
}
项目:openbravo-brazil
文件:FixBackdatedTransactionsProcess.java
private ScrollableResults getTransactions(Set<String> childOrgs, Date startDate, Date endDate) {
StringBuffer select = new StringBuffer();
select.append("select trx as trx");
select.append(" from " + MaterialTransaction.ENTITY_NAME + " as trx");
select.append(" where trx." + MaterialTransaction.PROPERTY_ORGANIZATION + ".id in (:orgs)");
select.append(" and trx." + MaterialTransaction.PROPERTY_ISCOSTCALCULATED + " = true");
select.append(" and trx." + MaterialTransaction.PROPERTY_TRANSACTIONPROCESSDATE
+ " >= (:startDate)");
if (endDate != null) {
select.append(" and trx." + MaterialTransaction.PROPERTY_TRANSACTIONPROCESSDATE
+ " < (:endDate)");
}
select.append(" order by trx." + MaterialTransaction.PROPERTY_MOVEMENTDATE);
Query stockLinesQry = OBDal.getInstance().getSession().createQuery(select.toString());
stockLinesQry.setParameterList("orgs", childOrgs);
stockLinesQry.setTimestamp("startDate", startDate);
if (endDate != null) {
stockLinesQry.setTimestamp("endDate", endDate);
}
stockLinesQry.setFetchSize(1000);
ScrollableResults stockLines = stockLinesQry.scroll(ScrollMode.FORWARD_ONLY);
return stockLines;
}
项目:openbravo-brazil
文件:CostingMigrationProcess.java
private ScrollableResults getCloseInventoryLines(Set<String> orgs) {
StringBuffer where = new StringBuffer();
where.append(" as il");
where.append(" where exists (select 1 from " + CostingRuleInit.ENTITY_NAME + " as cri");
where.append(" where cri." + CostingRuleInit.PROPERTY_CLOSEINVENTORY + " = il."
+ InventoryCountLine.PROPERTY_PHYSINVENTORY + ")");
where.append(" and il." + InventoryCountLine.PROPERTY_ORGANIZATION + ".id IN (:orgs)");
where.append(" order by " + InventoryCountLine.PROPERTY_PRODUCT + ", il."
+ InventoryCountLine.PROPERTY_BOOKQUANTITY);
OBQuery<InventoryCountLine> iclQry = OBDal.getInstance().createQuery(InventoryCountLine.class,
where.toString());
iclQry.setNamedParameter("orgs", orgs);
iclQry.setFilterOnActive(false);
iclQry.setFilterOnReadableClients(false);
iclQry.setFilterOnReadableOrganization(false);
iclQry.setFetchSize(1000);
return iclQry.scroll(ScrollMode.FORWARD_ONLY);
}
项目:openbravo-brazil
文件:OBQuery.java
/**
* Computes the row number of a record which has the id which is passed in as a parameter. The
* rownumber computation takes into account the filter and sorting settings of the the OBQuery
* object.
*
* @param targetId
* the record id
* @return the row number or -1 if not found
*/
public int getRowNumber(String targetId) {
String qryStr = createQueryString();
if (qryStr.toLowerCase().contains(FROM_SPACED)) {
final int index = qryStr.indexOf(FROM_SPACED) + FROM_SPACED.length();
qryStr = qryStr.substring(index);
}
final Query qry = getSession()
.createQuery("select " + usedAlias + "id " + FROM_SPACED + qryStr);
setParameters(qry);
final ScrollableResults results = qry.scroll(ScrollMode.FORWARD_ONLY);
try {
while (results.next()) {
final String id = results.getString(0);
if (id.equals(targetId)) {
return results.getRowNumber();
}
}
} finally {
results.close();
}
return -1;
}
项目:openbravo-brazil
文件:DalPerformanceCriteriaTest.java
public int doCriteriaQry() {
final OBCriteria<MaterialTransaction> obc = OBDal.getInstance().createCriteria(
MaterialTransaction.class);
obc.add(Restrictions.isNotNull(MaterialTransaction.PROPERTY_UOM));
obc.addOrderBy(MaterialTransaction.PROPERTY_PRODUCT + "." + Product.PROPERTY_NAME, false);
obc.setMaxResults(10);
obc.setFirstResult(0);
if (doScroll) {
final ScrollableResults r = obc.scroll(ScrollMode.FORWARD_ONLY);
int cnt = 0;
while (r.next()) {
cnt++;
}
return cnt;
}
final List<MaterialTransaction> cs = obc.list();
return cs.size();
}
项目:openbravo-brazil
文件:DalPerformanceCriteriaTest.java
public int doCriteriaQry() {
OBCriteria<BusinessPartner> c = OBDal.getInstance().createCriteria(BusinessPartner.class);
c.setFilterOnActive(false);
c.setFilterOnReadableClients(false);
c.setFilterOnReadableOrganization(false);
c.setMaxResults(1000);
if (doScroll) {
final ScrollableResults r = c.scroll(ScrollMode.FORWARD_ONLY);
int cnt = 0;
while (r.next()) {
cnt++;
}
return cnt;
}
final List<BusinessPartner> cs = c.list();
return cs.size();
}
项目:openbravo-brazil
文件:DalPerformanceCriteriaTest.java
public int doHqlQry() {
OBQuery<BusinessPartner> q = OBDal.getInstance().createQuery(BusinessPartner.class, "");
q.setFilterOnActive(false);
q.setFilterOnReadableClients(false);
q.setFilterOnReadableOrganization(false);
q.setMaxResult(1000);
qryStr = "All BusinessPartners";
if (doScroll) {
int cnt = 0;
ScrollableResults scroller = q.scroll(ScrollMode.FORWARD_ONLY);
while (scroller.next()) {
cnt++;
}
return cnt;
}
final List<BusinessPartner> cs = q.list();
return cs.size();
}
项目:jasperreports
文件:JRHibernateQueryExecuter.java
/**
* Runs the query by calling <code>org.hibernate.Query.scroll()</code>.
*
* @return scrollable results of the query
*/
public ScrollableResults scroll()
{
setMaxCount();
setQueryRunning(true);
try
{
scrollableResults = query.scroll(ScrollMode.FORWARD_ONLY);
}
finally
{
setQueryRunning(false);
}
return scrollableResults;
}
项目:communote-server
文件:QueryHelperDaoImpl.java
/**
* @param query
* The query.
* @param n
* The n'th element.
* @param logPerformance
* True, if the performance should be logged.
* @param class1
* @param <T>
* Return type of this method.
* @return The n'th element or null.
*/
private <T> T getNthElement(org.hibernate.Query query, int n, boolean logPerformance) {
StopWatch stopWatch = new StopWatch();
if (logPerformance) {
stopWatch.start();
}
query.setMaxResults(n);
ScrollableResults scrollableResults = query.scroll(ScrollMode.SCROLL_INSENSITIVE);
stopStopWatches(logPerformance, stopWatch, "QueryHelper#query.scroll");
resetAndStartStopWatch(logPerformance, stopWatch);
if (scrollableResults.last()) {
stopStopWatches(logPerformance, stopWatch, "QueryHelper#scrollableResults.setRowNumber"
+ n);
resetAndStartStopWatch(logPerformance, stopWatch);
return (T) scrollableResults.get(0);
}
return null;
}
项目:cacheonix-core
文件:HQLQueryPlan.java
public ScrollableResults performScroll(
QueryParameters queryParameters,
SessionImplementor session) throws HibernateException {
if ( log.isTraceEnabled() ) {
log.trace( "iterate: " + getSourceQuery() );
queryParameters.traceParameters( session.getFactory() );
}
if ( translators.length != 1 ) {
throw new QueryException( "implicit polymorphism not supported for scroll() queries" );
}
if ( queryParameters.getRowSelection().definesLimits() && translators[0].containsCollectionFetches() ) {
throw new QueryException( "firstResult/maxResults not supported in conjunction with scroll() of a query containing collection fetches" );
}
return translators[0].scroll( queryParameters, session );
}
项目:cacheonix-core
文件:SessionImpl.java
public ScrollableResults scroll(CriteriaImpl criteria, ScrollMode scrollMode) {
errorIfClosed();
checkTransactionSynchStatus();
String entityName = criteria.getEntityOrClassName();
CriteriaLoader loader = new CriteriaLoader(
getOuterJoinLoadable(entityName),
factory,
criteria,
entityName,
getEnabledFilters()
);
autoFlushIfRequired( loader.getQuerySpaces() );
dontFlushFromFind++;
try {
return loader.scroll(this, scrollMode);
}
finally {
dontFlushFromFind--;
}
}
项目:cacheonix-core
文件:SessionImpl.java
public ScrollableResults scrollCustomQuery(CustomQuery customQuery, QueryParameters queryParameters)
throws HibernateException {
errorIfClosed();
checkTransactionSynchStatus();
if ( log.isTraceEnabled() ) {
log.trace( "scroll SQL query: " + customQuery.getSQL() );
}
CustomLoader loader = new CustomLoader( customQuery, getFactory() );
autoFlushIfRequired( loader.getQuerySpaces() );
dontFlushFromFind++; //stops flush being called multiple times if this method is recursively called
try {
return loader.scroll(queryParameters, this);
}
finally {
dontFlushFromFind--;
}
}
项目:cacheonix-core
文件:SQLQueryImpl.java
public ScrollableResults scroll(ScrollMode scrollMode) throws HibernateException {
verifyParameters();
before();
Map namedParams = getNamedParams();
NativeSQLQuerySpecification spec = generateQuerySpecification( namedParams );
QueryParameters qp = getQueryParameters( namedParams );
qp.setScrollMode( scrollMode );
try {
return getSession().scroll( spec, qp );
}
finally {
after();
}
}
项目:cacheonix-core
文件:CriteriaQueryTest.java
public void testScrollCriteria() {
Session session = openSession();
Transaction t = session.beginTransaction();
Course course = new Course();
course.setCourseCode("HIB");
course.setDescription("Hibernate Training");
session.persist(course);
session.flush();
session.clear();
ScrollableResults sr = session.createCriteria(Course.class).scroll();
assertTrue( sr.next() );
course = (Course) sr.get(0);
assertNotNull(course);
sr.close();
session.delete(course);
t.commit();
session.close();
}
项目:UMLS-Terminology-Server
文件:UmlsIdentifierAssignmentHandler.java
private void cacheExistingStringClassIdentities() throws Exception {
Logger.getLogger(getClass()).info("Loading String Class Identities");
final Session session =
getService().getEntityManager().unwrap(Session.class);
final org.hibernate.Query hQuery = session
.createSQLQuery("select id, name, language from string_class_identity");
hQuery.setReadOnly(true).setFetchSize(100000).setCacheable(false);
final ScrollableResults results = hQuery.scroll(ScrollMode.FORWARD_ONLY);
while (results.next()) {
final Long id = ((BigInteger) results.get()[0]).longValue();
final String name = (String) results.get()[1];
final String language = (String) results.get()[2];
final String identityCode = name + language;
stringClassIdentityCache.put(identityCode, id);
}
results.close();
}
项目:UMLS-Terminology-Server
文件:UmlsIdentifierAssignmentHandler.java
private void cacheExistingLexicalClassIdentities() throws Exception {
Logger.getLogger(getClass()).info("Loading Lexical Class Identities");
final Session session =
getService().getEntityManager().unwrap(Session.class);
final org.hibernate.Query hQuery = session.createSQLQuery(
"select id, language, normalizedName from lexical_class_identity");
hQuery.setReadOnly(true).setFetchSize(100000).setCacheable(false);
final ScrollableResults results = hQuery.scroll(ScrollMode.FORWARD_ONLY);
while (results.next()) {
final Long id = ((BigInteger) results.get()[0]).longValue();
final String language = (String) results.get()[1];
final String normalizedName = (String) results.get()[2];
final String identityCode = language + normalizedName;
lexicalClassIdentityCache.put(identityCode, id);
}
results.close();
}
项目:orianna-hibernate
文件:HibernateDB.java
@SuppressWarnings("unchecked")
@Override
protected <T extends OriannaObject<?>> List<T> doGetAll(final Class<T> type) {
final Class<? extends OriannaDto> clazz = getDtoClass(type);
final ScrollableResults result = hibernateGetAll(clazz);
if(result == null) {
return Collections.emptyList();
}
try {
final List<T> response = new ArrayList<>();
while(result.next()) {
response.add((T)type.getDeclaredConstructors()[0].newInstance(result.get(0)));
}
result.close();
return response;
}
catch(InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | SecurityException e) {
throw new OriannaException("Couldn't load data from DB");
}
}
项目:java-classic-playground
文件:Program.java
private static void runStatelessHql() throws Exception {
Stopwatch watch = Stopwatch.createStarted();
StatelessSession statelessSession = sessionFactory.openStatelessSession();
try {
statelessSession.getTransaction().begin();
Query query = statelessSession
.createQuery(
" SELECT d.id, d.firstName, d.lastName, c.id, c.make " + " FROM Driver d "
+ " LEFT JOIN d.cars c WHERE index(c) LIKE 'Good'").setFetchSize(0).setReadOnly(true);
ScrollableResults scroll = query.scroll(ScrollMode.FORWARD_ONLY);
while (scroll.next()) {
LOG.info("Entry " + scroll.get(0));
}
statelessSession.getTransaction().commit();
} catch (Exception ex) {
statelessSession.getTransaction().rollback();
throw ex;
} finally {
statelessSession.close();
}
LOG.info("StatelessHql:=" + watch.toString());
}
项目:further-open-core
文件:HibernateCriteriaScrollableResultsExecutor.java
/**
* @param request
* @return
* @see edu.utah.further.core.chain.AbstractRequestHandler#process(edu.utah.further.core.api.chain.ChainRequest)
*/
@Override
public boolean process(final ChainRequest request)
{
final QueryExecutionRequest executionRequest = new QueryExecutionRequest(request);
final GenericCriteria criteria = executionRequest.getResult();
final ScrollableResults results = getResultListFromHibernate(criteria);
executionRequest.setResult(results);
executionRequest.setStatus("Executed query @ " + TimeService.getDate());
// Hibernate's ScrollableResults interface has no hasNext() or peek(), so go one
// row forward (if exists) and then back all the way so that we don't miss the
// first row in subsequent processors
final boolean hasNext = results.next();
if (hasNext)
{
results.previous();
}
return hasNext;
}
项目:further-open-core
文件:HibernateCriteriaScrollableResultsExecutor.java
/**
* Execute Hibernate criteria query and return a scrollable result set.
*
* @param criteria
* Hibernate criteria
* @return scrollable result set
* @see https://jira.chpc.utah.edu/browse/FUR-1274
*/
@HibernateExecutor
private ScrollableResults getResultListFromHibernate(final GenericCriteria criteria)
{
ScrollableResults results = null;
// Need to use INSENSITIVE scroll-mode per FUR-1300 and
// http://www.coderanch.com/t/301684/JDBC/java/Unsupported-syntax-refreshRow
final ScrollMode scrollMode = ScrollMode.SCROLL_INSENSITIVE;
try
{
results = criteria.setCacheMode(CacheMode.IGNORE).scroll(scrollMode);
}
catch (final HibernateException e)
{
log.error("An exception occurred while scrolling results", e);
}
// Normally we won't know up-front the size of a streaming result set. But for
// easier debugging of the subsequent paging sub-chain, print out the size of the
// list because we know it already in this case.
if (log.isDebugEnabled())
{
log.debug("Result set = " + StringUtil.getNullSafeToString(results));
}
return results;
}
项目:caarray
文件:NdfHandler.java
/**
* {@inheritDoc}
*/
@Override
public void createDesignDetails(ArrayDesign arrayDesign) throws PlatformFileReadException {
final Map<String, LogicalProbe> logicalProbes = new HashMap<String, LogicalProbe>();
int count = 0;
try {
final ArrayDesignDetails details = new ArrayDesignDetails();
arrayDesign.setDesignDetails(details);
getArrayDao().save(arrayDesign);
getArrayDao().save(details);
final ScrollableResults results = loadRows(this.fileOnDisk);
count = loadProbes(details, logicalProbes, results);
arrayDesign.setNumberOfFeatures(count);
} catch (final IOException e) {
LOG.error("Error processing line " + count);
throw new PlatformFileReadException(this.fileOnDisk, "Couldn't read file: ", e);
} finally {
this.hibernateHelper.getCurrentSession().createSQLQuery("DROP TABLE " + TEMP_TABLE_NAME + ";")
.executeUpdate();
}
}
项目:caarray
文件:NdfHandler.java
private int loadProbes(ArrayDesignDetails details, Map<String, LogicalProbe> logicalProbes,
ScrollableResults results) throws IOException {
int count = 0;
results.beforeFirst();
String lastSeqId = null;
while (results.next()) {
final Object[] values = results.get();
final Map<String, Object> vals = new HashMap<String, Object>();
vals.put(PROBE_ID, values[0]);
vals.put(SEQ_ID, values[1]);
vals.put(CONTAINER2, values[2]);
vals.put(X, values[3]);
vals.put(Y, values[4]);
if (lastSeqId != null && !vals.get(SEQ_ID).equals(lastSeqId)) {
logicalProbes.clear();
flushAndClearSession();
}
lastSeqId = (String) vals.get(SEQ_ID);
final PhysicalProbe p = createPhysicalProbe(details, vals, logicalProbes);
getArrayDao().save(p);
++count;
}
return count;
}