添加更多参数时,Mybatis插入失败

时间:2017-05-18 07:56:05

标签: java spring-mvc mybatis ibatis spring-mybatis

我正在为我的项目使用Mybatis 3.2Orace 12c。我使用代码生成器生成insert()方法。在<insert>标记中,它具有模式名称;例如:

insert into CPORTAL.CARD_USER_MASTER

现在,架构是动态的,所以我把参数改为架构:

insert into ${schema}.CARD_USER_MASTER

参数schemamapper.java中定义为

insert(CardUserMaster record, @Param("schema") String schema)

但是,如果没有该模式,插入有效,但是当有模式时,会发生错误:

 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'carduserSeqno' not found. Available parameters are [0, schema, param1, param2]

在其他类中,我在insert方法上设置了类似的模式参数,它可以工作。不知道这堂课发生了什么。

任何意见将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:1)

将其更改为

insert(@Param("entity") CardUserMaster record, @Param("schema") String schema)

并在SQL中使用params作为entity.carduserSeqno

看起来无法识别0参数是POJO。如果没有@Param("schema"),它会直接使用pojo字段作为params btu而添加schema param则不能。