MyBatisで空のリストを渡すとエラーが発生する場合、どのように解決すればよいですか?
MyBatisにおいて、空のリストが渡された場合、java.lang.NullPointerExceptionの例外が発生する可能性があります。この問題を解決するために、空リストを処理するためのディフェンシブプログラミングのロジックをコードに追加することができます。
以下が1つの解決策です。
- Mapperメソッドを呼び出す前に、Listが空かどうかを確認してください。空の場合は、空の結果を直接返すことができます。
if (list == null || list.isEmpty()) {
return new ArrayList<>(); // 返回一个空结果
}
- <すべての>
<foreach collection="list" item="item" open="WHERE" separator="," close="">
<if test="list != null and !list.isEmpty()">
column = #{item}
</if>
</foreach>
上記の方法を使用することで、渡されたリストが空の場合にNullPointerExceptionの例外を回避し、空の結果を返すことができます。