在SpringBoot應用中,比如想返回一個表的主鍵id構成的Long型數組Long[],需要在XxxMapper.xml
文件中這樣定義select語句:
<select id="selectIds" parameterType="int" resultType="Long">select id from sys_job_log limit #{count}
</select>
注意,雖然想返回的是Long[],但是resultType的值只能寫成"Long",而不能寫成"Long[]",否則會報如下錯誤:
Caused by: org.apache.ibatis.executor.ExecutorException:
No constructor found in [Ljava.lang.Long; matching [java.lang.Long]
意思是我這里有個Long類型的數據,但無法找到一個合適的(以一個Long數據為入參的)Long數組(即[Ljava.lang.Long)的構造方法,因此報錯。
然后在XxxMapper.java
類中這樣定義方法即可:
Long[] selectIds(@Param(value = "count") int count);
調用該方法,就可以返回一個Long[]的結果了。
PS:網上很多資料,都說將 resultType 的值寫成 “Long[]”,其實是錯的,誤人子弟,坑。