2017-05-18 2 views
0

J'utilise Mybatis3.2, Orace 12c pour mon projet. J'ai utilisé le générateur de code pour générer la méthode insert(). Dans la balise <insert>, le nom du schéma est indiqué. Ex:L'insertion de Mybatis échoue quand ajouter plus de paramètre

insert into CPORTAL.CARD_USER_MASTER 

Maintenant, le schéma est dynamique, donc je mets le paramètre à modifier le schéma:

insert into ${schema}.CARD_USER_MASTER 

Paramètre schema est défini dans mapper.java comme

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

Cependant, sans ce schéma, l'insertion fonctionne mais quand le schéma a, une erreur se produit:

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

Dans d'autres classes, j'ai défini un paramètre de schéma comme celui de la méthode insert et cela fonctionne. Je ne sais pas ce qui est arrivé à cette classe.

Tous les commentaires seront appréciés.

Merci.

Répondre

1

Modifier à

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

et utiliser les params comme entity.carduserSeqno dans le SQL.

On dirait qu'il ne peut pas reconnaître que le paramètre 0 est POJO. Sans le @Param("schema"), il utilise les champs de pojo directement comme params btu en ajoutant le paramètre schema qu'il ne peut pas.

+0

merci, mais ne fonctionne pas comme prévu. En tout cas, apprécie ton aide. À votre santé. –