I get an error message:
org.mybatis.spring.MyBatisSystemException: nested exception - org. Apache. Ibatis. exceptions.PersistenceException:
and
java.lang.IllegalArgumentException: The Mapped Statement collection does not contain a value for .. "
when I call a stored procedure from mybatis using Java.
I use PostgreSQL as a database and Spring MVC framework. To do this, my DAO class calling the stored procedure is as follows:
Orders orders=new Orders();
The values ββare set in the order variable programmatically.
Integer insert= getSqlSession().insert("records",orders);**
My mybatis file looks like this:
<insert id="records" parameterType="Orders" statementType="CALLABLE"> {call fn_records_tbl(#{rId,javaType=Integer,jdbcType=INTEGER,mode=IN},#{state,javaType=String,jdbcType=CHAR,mode=IN},#{uId,javaType=Integer,jdbcType=INTEGER,mode=IN},#{status,javaType=String,jdbcType=CHAR,mode=IN})} </insert>
My stored procedure syntax:
CREATE OR REPLACE FUNCTION fn_records_tbl(rId integer, state character,uId integer, status character) RETURNS void AS $BODY$ DECLARE
and my entity class for transfer parameters:
public class Orders implements Serializable { private static final long serialVersionUID = 267216928694677437L; private Integer uId; private Integer rId; private String status; private String state;