我用myBatis 调用一个有多个参数+多个返回参数+一个游标 oracle存储过程,存储过程中有判断如果某个参数不正确,则直接返回不执行游标查询。这个时候myBatis会抛异常:
### Cause: java.sql.SQLException: Ref 娓告爣鏃犳晥
; uncategorized SQLException for SQL []; SQL state [null]; error code [17062]; Ref 娓告爣鏃犳晥; nested exception is java.sql.SQLException: Ref 娓告爣鏃犳晥
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:368)
at $Proxy4.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:163)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63)
求教大神该如何解决
咋没人回复呢
不要用任何和ORM相关的封装
所有ORM相关的封装,都是根据mysql来封装的
mysql不是数据库
所以任何的ORM都不能完整的支持数据库的操作
楼主提到的是你最钟爱的Oracle,你是不是反应过激了,呵呵回复<aclass='referer'target='_blank'>@xmut: 正是因为用了oracle或者其他任何真正的数据库
都会被这些框架困扰。
这些数据库框架的设计者,基本上都被mysqlFK过了。
<divclass="ref">不要用任何和ORM相关的封装
所有ORM相关的封装,都是根据mysql来封装的
mysql不是数据库
所以任何的ORM都不能完整的支持数据库的操作
1.找到异常的存储过程。在数据库端执行。看会不会报异常。
2.如果1返回true.那么你再检查。你用来接收的类型是什么类型.<至少是一个集合类型> 原因不用我多少了吧..
自己检查下.
我在接收map里面给的类型是CURSOR,当存储过程中游标从来没开启过时,mybatis读取返回值是就出错了。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。