我可以通过 javax.persistence.EntityManager 执行普通查询。
目前我真的不知道。我会在这篇文章之后尝试进一步搜索,如果你们能有所启发,我将非常感激。
谢谢 :)
我可以通过 javax.persistence.EntityManager 执行普通查询。
目前我真的不知道。我会在这篇文章之后尝试进一步搜索,如果你们能有所启发,我将非常感激。
谢谢 :)
使用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;
}