求助:Hibernate调用存储过程

FChengLiang 2010-06-16 06:50:14

EMP表的映射文件:Emp.hbm.xml
<hibernate-mapping>
<class name="com.kaili.pojo.Emp" table="emp" catalog="kaili">
<id name="empno" type="java.lang.String">
<column name="empno" length="40" />
<generator class="assigned"/>
</id>
<property name="ename" type="java.lang.String">
<column name="ename" length="30" />
</property>
<property name="sex" type="java.lang.String">
<column name="sex" length="1" />
</property>
<property name="contact" type="java.lang.String">
<column name="contact" length="20" />
</property>
<property name="adds" type="java.lang.String">
<column name="adds" />
</property>
<property name="age" type="java.lang.String">
<column name="age" />
</property>
<property name="deptno" type="java.lang.String">
<column name="deptno" length="40" />
</property>
<property name="hiredate" type="java.lang.String">
<column name="hiredate" length="20" />
</property>
<property name="memo" type="java.lang.String">
<column name="memo" />
</property>
<property name="del" type="java.lang.String">
<column name="del" length="1"/>
</property>
</class>
<sql-query name="getEmpList" callable="true">
<return alias="emp" class="com.kaili.pojo.Emp">
<return-property name="empno" column="empno"/>
<return-property name="ename" column="ename"/>
<return-property name="sex" column="sex"/>
<return-property name="contact" column="contact"/>
<return-property name="adds" column="adds"/>
<return-property name="age" column="age"/>
<return-property name="deptno" column="deptno"/>
<return-property name="hiredate" column="hiredate"/>
<return-property name="memo" column="memo"/>
<return-property name="del" column="del"/>
</return>
{ call getEmplist(?,?,?)}
</sql-query>
</hibernate-mapping>

这是Dao类,我继承的是HibernateDaoSupport
这是其中的一个方法:
public ListIterator<Emp> findStaff() {
// TODO Auto-generated method stub
ListIterator<Emp> list = this.getHibernateTemplate().executeFind(
new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
// TODO Auto-generated method stub
Query q = session.getNamedQuery("getEmpList");
q.setInteger(1, 1);
q.setInteger(2, 3);
System.out.println("获取的值:"+q.getQueryString());
return q.list();
}
}).listIterator();
return list;
}
可是执行的时候出现了这个错误:
java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.toArray(Unknown Source)
at org.hibernate.util.ArrayHelper.toTypeArray(ArrayHelper.java:75)
at org.hibernate.impl.AbstractQueryImpl.typeArray(AbstractQueryImpl.java:831)
at org.hibernate.impl.AbstractQueryImpl.getQueryParameters(AbstractQueryImpl.java:839)
at org.hibernate.impl.SQLQueryImpl.getQueryParameters(SQLQueryImpl.java:194)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
at com.kaili.bean.StaffBeanImpl$1.doInHibernate(StaffBeanImpl.java:47)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)
at com.kaili.bean.StaffBeanImpl.findStaff(StaffBeanImpl.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)


这个项目我使用的技术是:
Struts2.0+spring2.0+Hibernate3.1

请高手帮忙解决一下哈~~
...全文
249 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
newLife_bj 2010-06-17
  • 打赏
  • 举报
回复
没用过,学习……
亲努力啊 2010-06-17
  • 打赏
  • 举报
回复
试图将错误类型的对象存储到一个对象数组时抛出的异常。例如,以下代码可生成一个 ArrayStoreException:


Object x[] = new String[3];
x[0] = new Integer(0);
yueming918 2010-06-17
  • 打赏
  • 举报
回复

String sql = " begin pro_hfxmwcitemtj( ); end; ";
private Object executeUpdateS(final String sql) {
return getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
Query queryObject = session.createSQLQuery(sql);
return queryObject.executeUpdate();
}
}, true);
}
sujianchinaouya 2010-06-17
  • 打赏
  • 举报
回复
我好像用过JDBC调用存储过程。 没有用过hibernate调用

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧