【发布时间】:2012-09-04 06:31:21
【问题描述】:
我收到错误:
org.mybatis.spring.MyBatisSystemException: 嵌套异常是 org.阿帕奇。伊巴蒂斯。异常.PersistenceException:
和
java.lang.IllegalArgumentException:映射语句集合不包含 .. 的值”
当我使用 Java 从 mybatis 调用存储过程时。
我使用 PostgreSQL 作为数据库和 Spring MVC 框架。为此,我调用存储过程的 DAO 类是:
Orders orders=new Orders();
值以编程方式设置在 order 变量中。
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
}
【问题讨论】:
-
你能在这里添加你的映射器代码并给出完整的错误信息吗?
标签: java spring stored-procedures mybatis