0

私のアプリケーションは Spring MVC+iBatis+JBoss7+MySQL を使用しました。mySQL にストアド プロシージャがあり、それを iBatis mapper.xml ファイルにマップし、DAO から sqlMapClient を介して呼び出します。一度daoメソッドを実行すると正常に動作しますが、異なるストアドプロシージャパラメータを使用して同じメソッドへの2つの呼び出しを実行すると(パラメータの変更は、ストアドプロシージャの結果列の変更を意味します)、SQLを示す例外が発生しますグラマーは間違っています。ログを見ると、iBatis が最初のクエリ列 (最初のメソッド呼び出しの結果) を結果マップにマップしようとしていることがわかります。私は自分の dao クラス インスタンスのハッシュコードを印刷しようとしましたが、それらは異なります。DbVislaulizer のような DB クライアントから試行したときにプロシージャが正常に実行されるのに、なぜこれが起こるのですか?

詳細については、mapper.xml で結果クラスとして HashMap を使用しています。これにより、dao 内のlinkedhashmaps のリストが返されます..

どんな助けでも本当に便利です。

前もって感謝します

4

1 に答える 1

0

修正しました。mapper.xmlでプロパティremapResults="true"を設定する必要があります

例えば

id = "myReport" parameterClass = "Map" resultClass = "java.util.LinkedHashMap" remapResults="true"を選択します

于 2013-01-18T06:37:52.313 に答える