我得到的錯誤:如何從MyBatis Java調用存儲過程?
org.mybatis.spring.MyBatisSystemException: nested exception is org. apache. ibatis. exceptions.PersistenceException:
和
java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for .."
當我打電話使用Java存儲從MyBatis的過程。
我正在使用PostgreSQL作爲數據庫和Spring MVC框架。爲此,我調用存儲過程的DAO類是:
Orders orders=new Orders();
值以編程方式在順序變量中設置。
Integer insert= getSqlSession().insert("records",orders);**
我MyBatis的文件看起來像這樣:
<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>
我的存儲過程的語法是:
CREATE OR REPLACE FUNCTION fn_records_tbl(rId integer, state character,uId integer, status character)
RETURNS void AS
$BODY$
DECLARE
-- my code
BEGIN
-- my code
END
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION fn_records_tbl(integer, character, integer, character)
OWNER TO mydba;
和我傳遞參數實體類是:
public class Orders implements Serializable {
private static final long serialVersionUID = 267216928694677437L;
private Integer uId;
private Integer rId;
private String status;
private String state;
// here are my setter and getter
}
你可以在這裏添加你的映射代碼並給出完整的錯誤信息嗎? –