hibernate调用存储过程的时候报出java.lang.ArrayStoreException 的异常
程序调用:Sessionsession=sessionFactory.openSession();Queryquery=session.getNamedQuery("se...
程序调用:
Session session = sessionFactory.openSession();
Query query = session.getNamedQuery("selectAllUsers");
List list = query.setParameter("VPOSTNO", "99")
.list();
配置文件:
<hibernate-mapping>
<class name="vo.SshPost" table="ssh_post" >
<id name="postId" type="java.lang.String">
<column name="post_id" /> <generator class="native" /> </id>
<property name="postName" type="java.lang.String"> <column name="post_name" length="20" /> </property>
<property name="postNo" type="java.lang.String"> <column name="post_no" length="20" /> </property>
<filter name="myfilter" condition=":myfilterParam = post_name"/> </class>
<sql-query callable="true" name="selectAllUsers"> <return class="vo.SshPost">
<return-property name="postId" column="POST_ID"/>
<return-property name="postName" column="POST_NAME"/> <return-property name="postNo" column="POST_NO"/> </return>
{ call P_TEST(?,:VPOSTNO) } </sql-query>
</hibernate-mapping>
存储过程:
CREATE OR REPLACE PACKAGE TESTPACKAGE AS
TYPE Test_CURSOR IS REF CURSOR;
end TESTPACKAGE;
CREATE OR REPLACE PROCEDURE P_TEST(P_CURSOR OUT
TESTPACKAGE.TEST_CURSOR,
VPOSTNO IN VARCHAR2) IS
BEGIN
OPEN P_CURSOR FOR SELECT * FROM SSH_POST WHERE POST_NO = VPOSTNO;
END P_TEST;
异常信息
java.lang.ArrayStoreException 展开
Session session = sessionFactory.openSession();
Query query = session.getNamedQuery("selectAllUsers");
List list = query.setParameter("VPOSTNO", "99")
.list();
配置文件:
<hibernate-mapping>
<class name="vo.SshPost" table="ssh_post" >
<id name="postId" type="java.lang.String">
<column name="post_id" /> <generator class="native" /> </id>
<property name="postName" type="java.lang.String"> <column name="post_name" length="20" /> </property>
<property name="postNo" type="java.lang.String"> <column name="post_no" length="20" /> </property>
<filter name="myfilter" condition=":myfilterParam = post_name"/> </class>
<sql-query callable="true" name="selectAllUsers"> <return class="vo.SshPost">
<return-property name="postId" column="POST_ID"/>
<return-property name="postName" column="POST_NAME"/> <return-property name="postNo" column="POST_NO"/> </return>
{ call P_TEST(?,:VPOSTNO) } </sql-query>
</hibernate-mapping>
存储过程:
CREATE OR REPLACE PACKAGE TESTPACKAGE AS
TYPE Test_CURSOR IS REF CURSOR;
end TESTPACKAGE;
CREATE OR REPLACE PROCEDURE P_TEST(P_CURSOR OUT
TESTPACKAGE.TEST_CURSOR,
VPOSTNO IN VARCHAR2) IS
BEGIN
OPEN P_CURSOR FOR SELECT * FROM SSH_POST WHERE POST_NO = VPOSTNO;
END P_TEST;
异常信息
java.lang.ArrayStoreException 展开
2个回答
展开全部
java.lang.ArrayStoreException:将错误类型的对象存储到一个对象(数组--个人看法)时抛出的异常。
一般的是不需要看“配置文件”和“存储过程”的。
你可以将异常完全展示出来,然后根据错误行数(应该是JAVA 代码的),找到具体的错误点,比较一下 “=”,左右的值的类型法
一般的是不需要看“配置文件”和“存储过程”的。
你可以将异常完全展示出来,然后根据错误行数(应该是JAVA 代码的),找到具体的错误点,比较一下 “=”,左右的值的类型法
更多追问追答
追问
可问题是在执行List list = query.setParameter("VPOSTNO", "99")
.list();的时候报异常的
追答
query.setParameter("VPOSTNO", "99") :是给参数VPOSTNO 赋值用的吧,query.setParameter并不是执行SQL返回结果的操作。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询