私は、Java の MyBatis マッピング インターフェイスを介して呼び出される SQL Server ストアド プロシージャに XML 文字列を入力パラメータとして送信することに取り組んできました。私のマッピングは次のように定義されています。
@Update(value = "{ call prcFoo(" +
"#{ stringValue, jdbcType=VARCHAR, mode=IN }," +
"#{ xmlValue, jdbcType=CLOB, mode=IN } ) }")
@Options(statementType = StatementType.CALLABLE)
Integer sendXML(@Param("stringValue") String stringValue,
@Param("xmlValue") String xmlValue);
マッピングは、結果セットではなく整数値を返します。このマッピングを使用して呼び出しを行うと、プロシージャ エラー状態 (負の整数) が発生します。同じ XML 文字列を使用してデータベースでプロシージャを直接呼び出すと、期待値が返されるため、XML の読み取りに問題があるようです。MyBatis の使い方が間違っているのでしょうか、それとも何か問題がありますか?