Search in sources :

Example 11 with LoadQueryDetails

use of org.hibernate.loader.plan.exec.spi.LoadQueryDetails in project hibernate-orm by hibernate.

the class NonEncapsulatedCompositeIdResultSetProcessorTest method getResults.

private List getResults(final EntityPersister entityPersister, final Callback callback) {
    final LoadPlan plan = Helper.INSTANCE.buildLoadPlan(sessionFactory(), entityPersister);
    final LoadQueryDetails queryDetails = Helper.INSTANCE.buildLoadQueryDetails(plan, sessionFactory());
    final String sql = queryDetails.getSqlStatement();
    final ResultSetProcessor resultSetProcessor = queryDetails.getResultSetProcessor();
    final List results = new ArrayList();
    final Session workSession = openSession();
    workSession.beginTransaction();
    workSession.doWork(new Work() {

        @Override
        public void execute(Connection connection) throws SQLException {
            System.out.println("SQL : " + sql);
            PreparedStatement ps = connection.prepareStatement(sql);
            callback.bind(ps);
            ResultSet resultSet = ps.executeQuery();
            // callback.beforeExtractResults( workSession );
            results.addAll(resultSetProcessor.extractResults(resultSet, (SessionImplementor) workSession, callback.getQueryParameters(), Helper.parameterContext(), true, false, null, null));
            resultSet.close();
            ps.close();
        }
    });
    workSession.getTransaction().commit();
    workSession.close();
    return results;
}
Also used : ResultSetProcessor(org.hibernate.loader.plan.exec.process.spi.ResultSetProcessor) SQLException(java.sql.SQLException) ArrayList(java.util.ArrayList) Connection(java.sql.Connection) PreparedStatement(java.sql.PreparedStatement) LoadPlan(org.hibernate.loader.plan.spi.LoadPlan) LoadQueryDetails(org.hibernate.loader.plan.exec.spi.LoadQueryDetails) Work(org.hibernate.jdbc.Work) ResultSet(java.sql.ResultSet) ArrayList(java.util.ArrayList) List(java.util.List) Session(org.hibernate.Session)

Aggregations

LoadQueryDetails (org.hibernate.loader.plan.exec.spi.LoadQueryDetails)11 LoadPlan (org.hibernate.loader.plan.spi.LoadPlan)10 Connection (java.sql.Connection)9 PreparedStatement (java.sql.PreparedStatement)9 ResultSet (java.sql.ResultSet)9 ArrayList (java.util.ArrayList)9 List (java.util.List)9 Session (org.hibernate.Session)9 Work (org.hibernate.jdbc.Work)9 ResultSetProcessor (org.hibernate.loader.plan.exec.process.spi.ResultSetProcessor)9 QueryParameters (org.hibernate.engine.spi.QueryParameters)7 SessionImplementor (org.hibernate.engine.spi.SessionImplementor)6 EntityPersister (org.hibernate.persister.entity.EntityPersister)6 Test (org.junit.Test)6 SQLException (java.sql.SQLException)3 LockMode (org.hibernate.LockMode)2 LoadQueryInfluencers (org.hibernate.engine.spi.LoadQueryInfluencers)2 EntityJoinWalker (org.hibernate.loader.entity.EntityJoinWalker)2 QueryBuildingParametersImpl (org.hibernate.loader.plan.exec.query.internal.QueryBuildingParametersImpl)1