如何使用Hibernate访问Oracle函数(使用默认参数)?

时间:2011-02-25 17:43:10

标签: oracle hibernate

我的函数在Oracle 10g数据库中定义如下,返回ref_cursor,输入参数的默认值为2

FUNCTION fn_get_client(pv_clientId_len_i IN NUMBER DEFAULT 2)
    RETURN gtyp_ref_cur;

以下是我如何从hibernate调用函数 - hibernate映射文件的内容

<hibernate-mapping package="com.synapsegroupinc.services.crm.ExplainLanguageService.model">
    <class name="ClientInfo" schema="IVR">      
        <id name="clientId" column="client_id" type="string" />
        <property name="clientDesc" column="client_desc" type="string" />        
    </class>
   <sql-query name="FN_GET_CLIENT" callable="true">
        <return class="ClientInfo">
            <return-property name="clientId" column="client_id"/>
            <return-property name="clientDesc" column="client_desc" />         
        </return>
        { ? = call PKG_CAMS_IVR_CRM.FN_GET_CLIENT(?) }
    </sql-query>  
</hibernate-mapping>

问题:调用函数时传递输入值时一切正常。但是,我需要能够使它工作,这样当我在没有输入的情况下调用函数时,应该使用默认值。

我做了大量的谷歌搜索,但是在调用函数/存储过程时,hibernate是否支持默认参数没有运气。

谢谢大家。

1 个答案:

答案 0 :(得分:0)

可能是个错误吗?你使用什么样的jdbc驱动程序?你有没有检查一下是否正确?

顺便说一下,您是否尝试覆盖fn_get_client并删除参数?然后使用此函数,您可以使用默认选项调用接受一个参数的函数。它可以工作......