我在 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 是否支持默认参数方面我没有运气。
谢谢大家
最佳答案
这可能是一个错误?您使用的是哪种 jdbc 驱动程序?你检查过它们是否正确吗?
顺便问一下,您是否尝试覆盖 fn_get_client
并删除参数?然后使用此函数,您可以调用接受带有默认选项的一个参数的函数。它可以工作...
关于oracle - 如何使用 Hibernate 访问 Oracle 函数(使用默认参数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5120683/