2013-11-15 39 views
10

當我使用Spring MVC 3.2.0與3.2.3的MyBatis和MyBatis的彈簧1.2.1 ojdbc6 11.2.0.2.0錯誤映射器使用參數名稱

我有2個參數定義的XML映射器不同類型(日期和整數)。 我引用它們的查詢作爲#{身份識別碼}和#{指明MyDate},但我從ibatis的得到一個錯誤:

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

如果我引用參數#{0}和#{1}一切工作正常。

我有另一種映射器只有一個參數,我能夠引用參數爲#{指明MyDate}(唯一的區別是,我中XML如下:

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

我的問題是與多個參數的查詢不會讓我在XML文件中指定參數名。我能夠通過名稱與一個單一的參數引用。

回答

22

在映射器接口的Java文件編寫方法這樣

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

然後,修改xml文件

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

的MyBatis把所有參數與註釋@Param成地圖。

+0

它可能是在XML中指定的參數名稱(而不是在代碼中使用@Param註釋)? – Hubbitus