2017-05-18 306 views
0

私のプロジェクトにMybatis3.2,Orace 12cを使用しています。コード生成を使ってinsert()メソッドを生成しました。 <insert>タグにはスキーマ名があります。 EXのために:パラメータを追加するとMybatisの挿入が失敗する

insert into CPORTAL.CARD_USER_MASTER 

は今、スキーマは動的であるので、私は、スキーマを変更するには、パラメータを置く:

insert into ${schema}.CARD_USER_MASTER 

パラメータschemaは、しかし

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

として mapper.javaに定義されていますそのスキーマがなければ、挿入は機能しますが、スキーマがあるときはエラーが発生します:

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

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

とSQLにentity.carduserSeqnoとしてのparamsを使用するように変更し、それを。

0パラメータがPOJOであることを認識できないように見えます。 @Param("schema")がなければ、pojoフィールドを直接params btuとして使用し、schemaパラメータを追加することはできません。

+0

ありがとうございますが、期待通りに動作しません。とにかく、あなたの助けに感謝します。乾杯。 –

関連する問題