Welcome 微信登录

首页 / 数据库 / MySQL / 在Hibernate中通过Oracle Function取得单据号码

今天在使用Hibernate开发项目时,遇到一个Oracle Function的问题.在项目开发中,所有单据的号码产生都是通过一个Function来产生.在这个Function中有一些DML语法,所以不能使用select fun_...() Into v_ref from dual的方法来取得返回结果.经查询相关资料,Hibernate要求在执行Procedure和Function时都要返回一个游标,所以变通一下方法,我们增加另外一层Function处理.新定义一个Function 如下:Function fun_get_vou_web(....)RETURN SYS_REFCURSORas v_vou varchar2(20); st_cursor SYS_REFCURSOR;
BEGIN
 v_vou := fun_get_vou(....);
 
 OPEN st_cursor FOR
   SELECT v_vou as vouno from dual ;
   
    RETURN st_cursor;END;然后在hbm.xml中配置:<sql-query name="getNewAppNo" callable="true">
  <return-scalar column="vouno" type="string"/>
  { ? = call fun_get_vou_web(.......) }
 </sql-query>最后在java中查询name为getNewAppNo的执行结果即可.Oracle 使用递归的性能提示MySQL主从复制单表或者多表相关资讯      hibernate  Oracle Function 
  • Hibernate利用@DynamicInsert和@  (今 07:09)
  • Hibernate某些版本(4.3)下报错   (04月20日)
  • Hibernate 5.1.0 正式版发布下载  (02月12日)
  • Hibernate的get和load的区别  (08月07日)
  • Hibernate3.1.2_中文文档PDF  (02月17日)
  • Hibernate ORM 5.0.6 发布下载  (12/17/2015 17:12:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数