Java 类org.hibernate.loader.criteria.CriteriaLoader 实例源码

项目: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    文件: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);
}
项目:hibernate-filter    文件:TableFilter.java   
public static String showSql(Criteria criteria){
    try {
        CriteriaImpl c = (CriteriaImpl) criteria;
        SessionImpl s = (SessionImpl) c.getSession();
        SessionFactoryImplementor factory = (SessionFactoryImplementor) s.getSessionFactory();
        String[] implementors = factory.getImplementors(c.getEntityOrClassName());
        LoadQueryInfluencers lqis = new LoadQueryInfluencers();
        CriteriaLoader loader = new CriteriaLoader((OuterJoinLoadable) factory.getEntityPersister(implementors[0]), factory, c, implementors[0], lqis);
        Field f = OuterJoinLoader.class.getDeclaredField("sql");
        f.setAccessible(true);
        return (String) f.get(loader);
    }catch (Exception e){
        e.printStackTrace();
        return "";
    }
}
项目: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--;
    }
}
项目:lams    文件:StatelessSessionImpl.java   
@Override
@SuppressWarnings( {"unchecked"})
public List list(Criteria criteria) throws HibernateException {
    // TODO: Is this guaranteed to always be CriteriaImpl?
    CriteriaImpl criteriaImpl = (CriteriaImpl) criteria;

    errorIfClosed();
    String[] implementors = factory.getImplementors( criteriaImpl.getEntityOrClassName() );
    int size = implementors.length;

    CriteriaLoader[] loaders = new CriteriaLoader[size];
    for( int i=0; i <size; i++ ) {
        loaders[i] = new CriteriaLoader(
                getOuterJoinLoadable( implementors[i] ),
                factory,
                criteriaImpl,
                implementors[i],
                getLoadQueryInfluencers()
        );
    }


    List results = Collections.EMPTY_LIST;
    boolean success = false;
    try {
        for( int i=0; i<size; i++ ) {
            final List currentResults = loaders[i].list(this);
            currentResults.addAll(results);
            results = currentResults;
        }
        success = true;
    }
    finally {
        afterOperation(success);
    }
    temporaryPersistenceContext.clear();
    return results;
}
项目:cacheonix-core    文件:StatelessSessionImpl.java   
public ScrollableResults scroll(CriteriaImpl criteria, ScrollMode scrollMode) {
    errorIfClosed();
    String entityName = criteria.getEntityOrClassName();
    CriteriaLoader loader = new CriteriaLoader(
            getOuterJoinLoadable(entityName),
            factory,
            criteria,
            entityName,
            getEnabledFilters()
        );
    return loader.scroll(this, scrollMode);
}
项目:cacheonix-core    文件:StatelessSessionImpl.java   
public List list(CriteriaImpl criteria) throws HibernateException {
    errorIfClosed();
    String[] implementors = factory.getImplementors( criteria.getEntityOrClassName() );
    int size = implementors.length;

    CriteriaLoader[] loaders = new CriteriaLoader[size];
    for( int i=0; i <size; i++ ) {
        loaders[i] = new CriteriaLoader(
                getOuterJoinLoadable( implementors[i] ),
                factory,
                criteria,
                implementors[i],
                getEnabledFilters()
        );
    }


    List results = Collections.EMPTY_LIST;
    boolean success = false;
    try {
        for( int i=0; i<size; i++ ) {
            final List currentResults = loaders[i].list(this);
            currentResults.addAll(results);
            results = currentResults;
        }
        success = true;
    }
    finally {
        afterOperation(success);
    }
    temporaryPersistenceContext.clear();
    return results;
}
项目:lams    文件:SessionImpl.java   
@Override
public List list(Criteria criteria) throws HibernateException {
    // TODO: Is this guaranteed to always be CriteriaImpl?
    CriteriaImpl criteriaImpl = (CriteriaImpl) criteria;

    final NaturalIdLoadAccess naturalIdLoadAccess = this.tryNaturalIdLoadAccess( criteriaImpl );
    if ( naturalIdLoadAccess != null ) {
        // EARLY EXIT!
        return Arrays.asList( naturalIdLoadAccess.load() );
    }

    errorIfClosed();
    checkTransactionSynchStatus();
    String[] implementors = factory.getImplementors( criteriaImpl.getEntityOrClassName() );
    int size = implementors.length;

    CriteriaLoader[] loaders = new CriteriaLoader[size];
    Set spaces = new HashSet();
    for( int i=0; i <size; i++ ) {

        loaders[i] = new CriteriaLoader(
                getOuterJoinLoadable( implementors[i] ),
                factory,
                criteriaImpl,
                implementors[i],
                getLoadQueryInfluencers()
            );

        spaces.addAll( loaders[i].getQuerySpaces() );

    }

    autoFlushIfRequired(spaces);

    List results = Collections.EMPTY_LIST;
    dontFlushFromFind++;
    boolean success = false;
    try {
        for( int i=0; i<size; i++ ) {
            final List currentResults = loaders[i].list(this);
            currentResults.addAll(results);
            results = currentResults;
        }
        success = true;
    }
    finally {
        dontFlushFromFind--;
        afterOperation(success);
        delayedAfterCompletion();
    }

    return results;
}
项目:cacheonix-core    文件:SessionImpl.java   
public List list(CriteriaImpl criteria) throws HibernateException {
    errorIfClosed();
    checkTransactionSynchStatus();
    String[] implementors = factory.getImplementors( criteria.getEntityOrClassName() );
    int size = implementors.length;

    CriteriaLoader[] loaders = new CriteriaLoader[size];
    Set spaces = new HashSet();
    for( int i=0; i <size; i++ ) {

        loaders[i] = new CriteriaLoader(
                getOuterJoinLoadable( implementors[i] ),
                factory,
                criteria,
                implementors[i],
                getEnabledFilters()
            );

        spaces.addAll( loaders[i].getQuerySpaces() );

    }

    autoFlushIfRequired(spaces);

    List results = Collections.EMPTY_LIST;
    dontFlushFromFind++;
    boolean success = false;
    try {
        for( int i=0; i<size; i++ ) {
            final List currentResults = loaders[i].list(this);
            currentResults.addAll(results);
            results = currentResults;
        }
        success = true;
    }
    finally {
        dontFlushFromFind--;
        afterOperation(success);
    }

    return results;
}