首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从hbm调用存储过程

从hbm调用存储过程
EN

Stack Overflow用户
提问于 2014-08-15 00:32:08
回答 1查看 1.1K关注 0票数 0

我被困在调用存储在oracle中的过程,并从Hibernate客户端返回选定的列。

employee3.hbm.xml

代码语言:javascript
复制
        <hibernate-mapping>
          <class name="Employee" table="employee3">
            <id name="eid" column="eid"/>
      <property name="fname" column="first_name"/>
      <property name="lname" column="last_name"/>
      <property name="email" column="email"/>
   </class>


<sql-query name="test1" callable="true">
  <return  alias ="test1" class ="Employee">
    <return-property name="fname" column="first_name"/>
    <return-property name="lname" column="last_name"/>
</return>
  {?=call get_empdetails_assg(?,?)}
</sql-query>
</hibernate-mapping>

testClient.java

代码语言:javascript
复制
Session ses =sf.openSession();

Transaction tx = ses.beginTransaction();
System.out.println("--------------got tx object-----------");
Employee eb =null;

SQLQuery q1=(SQLQuery)ses.createSQLQuery("test1");


System.out.println("--------------q1 processing-----------");
q1.setString(0,"v%");

存储过程:

代码语言:javascript
复制
create or replace  procedure get_empdetails_assg(mycursor out sys_refcursor,cond in           varchar)

as 
begin
open mycursor for

select eb.first_name,eb.last_name from employee3 eb where eb.first_name like cond;

end;

在尝试用setString(0,"v%")在sql中设置cond时,我得到了输出错误。

代码语言:javascript
复制
--------------q1 processing-----------                                          Exception in thread "main" java.lang.IllegalArgumentException: No positional parameters in query: test1                                                                 at org.hibernate.internal.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:442)     

请输入任何..am厌倦尝试:(

关于Jay

EN

回答 1

Stack Overflow用户

发布于 2014-08-15 04:43:06

您没有正确地传递参数,并且需要调用getNamedQuery(),而不是createSQLQuery()

尝尝这个。

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

https://stackoverflow.com/questions/25313126

复制
相关文章

相似问题

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