我看到的基本都是直接使用JDBC的。
  tx   =   session.beginTransaction();       
  Connection   con=session.connection();       
  String   procedure   =   "{call   batchUpdateCustomer(?)   }";       
  CallableStatement   cstmt   =   con.prepareCall(procedure);       
  cstmt.setInt(1,0);   //把年龄参数设为0       
  cstmt.executeUpdate();       
  tx.commit();       

解决方案 »

  1.   

    如果lz 想参看 jdbc调用存储过程的话.
    可以到我的blog 看看
    http://blog.csdn.net/caoyinghui1986/archive/2008/04/04/2251390.aspx
    希望对你有帮助.
      

  2.   

    嗯,hibernate的思想是不要用sp,所以对sp支持得不好,但是又不能完全屏蔽
    只好使用jdbc来玩了
      

  3.   

    同意楼上的说法,存储过程是和hibernate的思想相悖的;但是不是说hibernate不支持调用存储过程,
    hibernate3开始支持存储过程查询特性了;
    注意:因为是"存储过程查询特性"所以只能调用,返回结果集的存储过程;例如返回,tuer的结果集
    需要在TUer的hbm.xml下<sql-query name="getUserByAge" callable="true">
    <return alias="user" class="po.TUser">
    <return-property name="id" column="ID"/>
    <return-property name="name" column="Name"/>
    <return-property name="age" column="Age"/>
    {? = call getUserByAge(?)}
    </sql-query>
      

  4.   

    可以通过用namedQuery来吊用。。命名查询
      

  5.   

    http://www.javaeye.com/topic/24870
    这个里面有你要的东西,是用hibernate调用Oracle的存储过程,你可以参考一下