1

javax.persistence.EntityManager を介して通常のクエリを実行できます。

現時点では本当にわかりません。この投稿の後、さらに検索を試みます。皆さんが光を当てることができれば、本当に感謝しています.

ありがとうございました :)

4

1 に答える 1

0

を使用してjavax.persistence.EntityManager

を使用して生の接続を取得します

private Connection getConnection(final EntityManager em) {
      HibernateEntityManager hem = (HibernateEntityManager) em;
      SessionImplementor sim = (SessionImplementor) hem.getSession();
      return sim.connection();
}

次に、次のようなことを行います

public boolean myProc(EntityManager pentityManager, String param1, BigDecimal param2, String param3) throws SQLException {

        boolean result = false;

        Connection conn = getConnection(pentityManager); /* code above */
        CallableStatement cs;

        cs = conn.prepareCall("{CALL myPackage.myProc( ?, ?, ?, ? )}");

        //IN params
        cs.setString(1, param1);
        cs.setBigDecimal(2, param2);
        cs.setString(3, param3);

        //OUT param
        cs.registerOutParameter(4, java.sql.Types.BOOLEAN);

        cs.executeUpdate();

        result = cs.getBoolean(4); //get OUT PARAM

        return result;
    }
于 2013-10-21T07:53:35.527 に答える