Java 类org.hibernate.jdbc.ReturningWork 实例源码

项目:dcp-api    文件:JpaHibernateContentPersistenceServiceTest.java   
private void assertRowCount(JpaHibernateContentPersistenceService tested, String dcpContentType, int expectedCount) {
    final String tablename = tested.getTableName(dcpContentType);
    Assert.assertEquals((Integer) expectedCount, tested.doDatabaseReturningWork(new ReturningWork<Integer>() {

        @Override
        public Integer execute(Connection conn) throws SQLException {
            PreparedStatement ps = null;
            ResultSet rs = null;
            try {
                ps = conn.prepareStatement("select count(*) from " + tablename);
                rs = ps.executeQuery();
                if (rs.next()) {
                    return rs.getInt(1);
                }
                return 0;
            } finally {
                JpaHibernateContentPersistenceService.closeJDBCStuff(ps, rs);
            }
        }
    }));
}
项目:lams    文件:SessionImpl.java   
@Override
public <T> T doReturningWork(final ReturningWork<T> work) throws HibernateException {
    WorkExecutorVisitable<T> realWork = new WorkExecutorVisitable<T>() {
        @Override
        public T accept(WorkExecutor<T> workExecutor, Connection connection) throws SQLException {
            return workExecutor.executeReturningWork( work, connection );
        }
    };
    return doWork( realWork );
}
项目:pedal-dialect    文件:HibernateProviderAccessSpiImpl.java   
@Override
public <R> R exec(EntityManager entityManager, final Function<Connection, R> work) {
    Session session = entityManager.unwrap(Session.class);
    return session.doReturningWork(new ReturningWork<R>() {

        @Override
        public R execute(Connection connection) throws SQLException {
            return work.apply(connection);
        }
    });
}
项目:pedal-dialect    文件:HibernateProviderAccessSpiImpl.java   
@Override
public <R> R exec(EntityManager entityManager, final Function<Connection, R> work) {
    Session session = entityManager.unwrap(Session.class);
    return session.doReturningWork(new ReturningWork<R>() {

        @Override
        public R execute(Connection connection) throws SQLException {
            return work.apply(connection);
        }
    });
}
项目:lams    文件:SessionDelegatorBaseImpl.java   
@Override
public <T> T doReturningWork(ReturningWork<T> work) throws HibernateException {
    return session.doReturningWork( work );
}
项目:tapestry-jpa-transactions    文件:JpaTest.java   
private void clearDatabase() throws SQLException
{
    CommitCounter.versionedThing.get().reset();

    EntityManager em = getEntityManager();
    em.clear();
    EntityTransaction transaction = em.getTransaction();
    if (!transaction.isActive())
    {
        transaction.begin();
    }

    final Connection c;

    if (concreteJpaProviderTestModuleClass == HibernateJpaTestModule.class)
    {
        //  Hibernate cannot unwrap JDBC connection directly
        c = em.unwrap(Session.class).doReturningWork(new ReturningWork<Connection>()
        {
            @Override
            public Connection execute(Connection connection) throws SQLException
            {
                return connection;
            }
        });
    }
    else
    {
        c = em.unwrap(Connection.class);
    }

    Statement s = c.createStatement();
    s.execute("SET REFERENTIAL_INTEGRITY FALSE");
    Set<String> tables = new HashSet<String>();
    ResultSet rs = s.executeQuery("select table_name " + "from INFORMATION_SCHEMA.tables "
            + "where table_type='TABLE' and table_schema='PUBLIC'");
    while (rs.next())
    {
        // if we don't skip over the sequence table, we'll start getting "The sequence table information is not complete"
        // exceptions
        if (!rs.getString(1).startsWith("DUAL_") && !rs.getString(1).equals("SEQUENCE"))
        {
            tables.add(rs.getString(1));
        }
    }
    rs.close();
    for (String table : tables)
    {
        s.executeUpdate("DELETE FROM " + table);
    }
    transaction.commit();
    s.execute("SET REFERENTIAL_INTEGRITY TRUE");
    s.close();
}
项目:hql-builder    文件:ServiceImpl.java   
protected <T> T doReturningWork(ReturningWork<T> work) throws HibernateException {
    return this.getSession().doReturningWork(work);
}
项目:dcp-api    文件:JpaHibernateContentPersistenceService.java   
protected <T> T doDatabaseReturningWork(ReturningWork<T> work) {
    return em.unwrap(Session.class).doReturningWork(work);
}
项目:lams    文件:Session.java   
/**
 * Controller for allowing users to perform JDBC related work using the Connection managed by this Session.  After
 * execution returns the result of the {@link ReturningWork#execute} call.
 *
 * @param work The work to be performed.
 * @param <T> The type of the result returned from the work
 *
 * @return the result from calling {@link ReturningWork#execute}.
 *
 * @throws HibernateException Generally indicates wrapped {@link java.sql.SQLException}
 */
public <T> T doReturningWork(ReturningWork<T> work) throws HibernateException;