首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中调用过程(使用hibernate会话)?

如何在java中调用过程(使用hibernate会话)?
EN

Stack Overflow用户
提问于 2014-07-30 18:45:19
回答 1查看 89关注 0票数 0

我需要在oracle db中插入记录。我正在指定表名和类名。如何调用下面的过程?

代码语言:javascript
复制
    <id name="userId" type="string">
        <column name="USER_ID" />
    </id>
    <property name="password" type="string">
        <column name="PASSWORD" length="10" not-null="false" />
    </property>
    <property name="username" type="string">
        <column name="USERNAME" not-null="false" />
    </property>

    <property name="superUser" type="string">
        <column name="USERTYPE" length="10" not-null="false" />
    </property>

    <sql-insert callable="true" check="none">
        {Call INSERT_USERS_PK (?,?,?,?)}    
    </sql-insert>

</class>

EN

回答 1

Stack Overflow用户

发布于 2014-07-30 21:08:50

要在hibernate中使用sprocs,您必须遵循一些rules

  • 它必须返回一个结果集。我认为在你的例子中,你会返回一些虚拟的结果集来使它工作。

  • ,你不能把它作为一个sql-insert。你需要让它成为sql-query.

<sql-query name="callInsertSproc"> <return alias="dummy" class="com.dummy.DummyObject"/> {? = call INSERT_USERS_PK (?,?,?,?)} </sql-query>

这就是调用命名查询存储过程的方式。

代码语言:javascript
复制
Query query = session.getNamedQuery("callInsertSproc")
    .setParameter(1, <someValue>)....;
List result = query.list();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25034814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档