2013-11-15 4 views
10

Ich bin mit Spring MVC 3.2.0 mit Mybatis 3.2.3 und Mybatis-Feder 1.2.1 mit ojdbc6 11.2.0.2.0Fehler in Mapper, wenn die Parameternamen

Ich habe einen XML-Mapper mit 2 Parametern definiert von verschiedenen Arten (Datum und Ganzzahl). ich verweisen sie in der Abfrage als # {myid} und # {mydate} aber ich erhalte eine Fehlermeldung aus ibatis:

org.apache.ibatis.binding.BindingException: Parameter 'myid' not found. Available parameters are [1, 0, param1, param2] 

Wenn ich die Parameter Referenz als # {0} und # {1} funktioniert alles einwandfrei .

ich eine andere Mapper mit nur einem einzigen Parameter haben, und ich bin in der Lage, die Parameter wie # {myDate} (der einzige Unterschied zu verweisen ist, dass ich die folgenden in der XML haben:

<select id="getAllbyDate" parameterType="date" resultType="com.test.myTest"> 

Mein Problem ist, dass die Abfrage mit mehreren Parametern mich nicht erlauben, die Parameternamen in der XML-Datei angeben. I mit Namen mit einem einzelnen Parameter zu verweisen sind in der Lage.

Antwort

22

in Mapper-Schnittstelle Java-Datei die Methode wie folgen

schreiben
public List<com.test.myTest> getAllbyDate(@Param("date") Date date, @Param("myid") int myid) 
Dann

, xml-Datei

<select id="getAllbyDate" parameterType="map" resultType="com.test.myTest"> 

Mybatis setzen alle Parameter mit Annotations @Param in der Karte ändern.

+0

Könnte der Parametername in XML angegeben werden (nicht mit @Param Annotation im Code)? – Hubbitus