有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在为我的项目使用Mybatis3.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)

但是,如果没有该模式,insert可以工作,但如果有模式,则会发生错误:

 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) 个答案

  1. # 1 楼答案

    换成

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

    并在SQL中使用参数作为entity.carduserSeqno

    看起来它无法识别0参数是POJO。如果没有@Param("schema"),它将pojo字段直接用作参数btu,并添加它无法添加的schema参数