使用返回参数从Hibernate中调用oracle中的pl / sql过程

时间:2018-10-29 07:42:02

标签: java hibernate plsql

我有一个PL / SQL函数, 此函数返回两个参数:req_type和req_seq。

这是PL / SQL的代码。

    'membership_type' => [
        'exclude' => 0,
        'label' => $ll . '/locallang_db.xlf:my_label.type',
        'config' => [
            'type' => 'select',
            'renderType' => 'selectSingle',
            'foreign_table' => 'sys_category',
            'foreign_table_where' => ' AND sys_category.parent=' . $membershipTypeParent . ' AND (sys_category.sys_language_uid = 0 OR sys_category.l10n_parent = 0) ORDER BY sys_category.sorting ASC',
            'items' => [
                [$llg . 'fe_users.groups.unkonwn', 0]
            ],
        ],
    ],

我需要从Hibernate调用此函数。

我没有找到从休眠状态进行这项工作的确切方法

我尝试使用此代码:

declare
    req_type number;
    req_seq  number;

    TEST_PKG.insert_req(001,req_type,req_seq );
    dbms_output.put_line('req_type='||req_type);
    dbms_output.put_line('req_seq='||req_seq);
end;

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法。在这里,我们在执行之前设置参数。

StoredProcedureQuery query = entityManager
        .createStoredProcedureQuery("proc_name")
        .registerStoredProcedureParameter(1, Long.class, 
            ParameterMode.IN)
        .registerStoredProcedureParameter(2, Long.class, 
            ParameterMode.OUT);

    query.execute();

    Long res = (Long) query.getOutputParameterValue(2);

您可以替换 您可以在此处找到有关StoredProcedureQuery的文档 https://docs.jboss.org/hibernate/jpa/2.1/api/javax/persistence/StoredProcedureQuery.html