Ich habe eine Reihe von StackOverflow-Fragen zu diesem Problem untersucht, kann aber keine finden, die einen Sinn ergeben. This one kommt am nächsten, zeigt jedoch nicht, wie der Rückgabewert von der Funktion erhalten wird.Rückgabewert der Oracle-Funktion mit Mybatis
Hier ist mein Mapper Aufruf:
public Long callMyFunction(@Param("recordId") Long recordId, @Param("otherId") Long otherId, @Param("date") Date date, @Param("comments") String comments);
Hier ist der Mapper 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>
Der Aufruf funktioniert, aber der Rückgabewert (ResultID) ist immer null.
Kann jemand das Problem erkennen?
Haben Sie es mit recordId versucht, javaType = long (nativer Typ) und nicht Long (Objekt-Wrapper)? –