Comment appeler une procédure stockée à partir de MyBatis Java?
J'obtiens l'erreur:
org.mybatis.printemps.MyBatisSystemException: nested exception est org. apache. ibatis. des exceptions.PersistenceException:
et
java.lang.IllegalArgumentException: Mappé États de collection ne contient pas de valeur pour .."
lorsque j'appelle une procédure stockée à partir de mybatis à l'aide de Java.
Je suis en utilisant PostgreSQL comme une base de données et un Spring MVC cadre. Pour cela, ma classe DAO de l'appel de la procédure stockée est:
Orders orders=new Orders();
Valeurs sont définies dans les ordres variable par programmation.
Integer insert= getSqlSession().insert("records",orders);**
Mon mybatis fichier ressemble à ceci:
<insert id="records" parameterType="Orders" statementType="CALLABLE">
{call fn_records_tbl(#{rId,javaType=Integer,jdbcType=INTEGER,mode=IN},#{state,javaType=String,jdbcType=CHAR,mode=IN},#{uId,javaType=Integer,jdbcType=INTEGER,mode=IN},#{status,javaType=String,jdbcType=CHAR,mode=IN})}
</insert>
Ma procédure stockée syntaxe est:
CREATE OR REPLACE FUNCTION fn_records_tbl(rId integer, state character,uId integer, status character)
RETURNS void AS
$BODY$
DECLARE
-- my code
BEGIN
-- my code
END
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION fn_records_tbl(integer, character, integer, character)
OWNER TO mydba;
et ma classe d'entité pour le passage de paramètres est:
public class Orders implements Serializable {
private static final long serialVersionUID = 267216928694677437L;
private Integer uId;
private Integer rId;
private String status;
private String state;
//here are my setter and getter
}
Pouvez-vous ajouter votre mappeur de code ici et de donner le code d'erreur complet?
OriginalL'auteur Ruju | 2012-09-04
Vous devez vous connecter pour publier un commentaire.
Que je suis en utilisant le framework Spring en raison de certains dépendance transitive ma procédure stockée n'est pas l'appel de MyBatis en java.
Donc j'ai vérifié ma pom.xml fichier pour trouver transitive de la dépendance et puis j'ai exclure toutes ces dépendances pour MyBatis et utilise la dernière version de MyBatis pour le framework spring.
Maintenant qu'il fonctionne correctement.
OriginalL'auteur Ruju
Essayez de modifier votre configuration de
insert
àselect
OriginalL'auteur Iswanto San