この問題ではStackOverflowに関するいくつかの質問を見てきましたが、意味があるものは見つかりませんでした。 This oneは最も近い値になりますが、関数から戻り値を取得する方法は示されていません。ここでMybatisを使用したOracle関数からの戻り値
は私のマッパーの呼び出しです:
public Long callMyFunction(@Param("recordId") Long recordId, @Param("otherId") Long otherId, @Param("date") Date date, @Param("comments") String comments);
はここでマッパXMLです:
<select id="callMyFunction" parameterType="map" statementType="CALLABLE" resultType="java.lang.Long">
{ #{resultId,javaType=java.lang.Long,jdbcType=NUMERIC,mode=OUT} = call MYSCHEMA.MYPACKAGE.my_function(
#{recordId,jdbcType=NUMERIC,mode=IN},
#{otherId,jdbcType=NUMERIC,mode=IN},
#{date,jdbcType=DATE,mode=IN},
#{comments,jdbcType=VARCHAR,mode=IN})}
</select>
呼び出しが動作しますが、戻り値(するresultId)は常にnullです。
誰かが問題を発見できますか?
long(オブジェクトラッパー)ではなく、recordId、javaType = long(ネイティブタイプ)で試しましたか? –