oracle创建存储过程
create or replace procedure PT(a in int,b out int)
is
BEGIN
b :=1;
dbms_output.put_line(b);
END;
/
实体类
@NamedStoredProcedureQuery(name="test", procedureName = "PT",parameters= { @StoredProcedureParameter(mode=ParameterMode.IN,type=int.class, name="a"), @StoredProcedureParameter(mode=ParameterMode.OUT,type=int.class, name="b") })
Reponsitory
@Procedure(name="test") int createPolicy(@Param("a")int a);
调用后报错:
org.springframework.dao.InvalidDataAccessApiUsageException: OUT/INOUT parameter not available: b; nested exception is java.lang.IllegalArgumentException: OUT/INOUT parameter not available: b
意思缺少b这个参数
Reponsitory 加上参数b后报错
org.springframework.dao.InvalidDataAccessApiUsageException: Can only bind values for IN/INOUT parameters : org.hibernate.query.procedure.internal.ProcedureParameterImpl@101c15ad; nested exception is java.lang.IllegalStateException: Can only bind values for IN/INOUT parameters : org.hibernate.query.procedure.internal.ProcedureParameterImpl@101c15ad
<p>只有in的可以掉用 有out或者inout就报错</p>
<pre>@Procedure(name="test")
int createPolicy(@Param("a")int a,@Param("b")int b);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。