MyBatis return emptyList() 和 null
MyBatis return both emptyList() and null
这是我的 myBatis 请求,它应该 return 一个列表:
@Mapper
public interface ClientAccessMapper {
List<ClientAccess> findByClientAndPartnerWithAutoRenewal(@Param("clientId") Long clientId,
@Param("partner") String partner,
@Param("autoRenewal") Boolean autoRenewal);
}
<select id="findByClientAndPartnerWithAutoRenewal" resultMap="ClientAccessResult">
select * from client_access
where client_id = #{clientId}
and partner = #{partner}
<if test="autoRenewal != null">
and auto_renewal = #{autoRenewal}
</if>
order by id
</select>
有时请求 returns "null" 而不是空列表。
得到后我有一个检查块:
final List<ClientAccess> clientAccesses = clientAccessMapper.findByClientAndPartnerWithAutoRenewal(client, partner, true);
if (clientAccesses.isEmpty()) {/**/}
和我的 clientAccesses.isEmpty()
有时会因为 null 而不是大小为 0 的列表而产生 NPE。
有什么问题吗?
可能是空指针。
推荐使用:
CollectionUtils.isEmpty(priceList)
这是我的 myBatis 请求,它应该 return 一个列表:
@Mapper
public interface ClientAccessMapper {
List<ClientAccess> findByClientAndPartnerWithAutoRenewal(@Param("clientId") Long clientId,
@Param("partner") String partner,
@Param("autoRenewal") Boolean autoRenewal);
}
<select id="findByClientAndPartnerWithAutoRenewal" resultMap="ClientAccessResult">
select * from client_access
where client_id = #{clientId}
and partner = #{partner}
<if test="autoRenewal != null">
and auto_renewal = #{autoRenewal}
</if>
order by id
</select>
有时请求 returns "null" 而不是空列表。 得到后我有一个检查块:
final List<ClientAccess> clientAccesses = clientAccessMapper.findByClientAndPartnerWithAutoRenewal(client, partner, true);
if (clientAccesses.isEmpty()) {/**/}
和我的 clientAccesses.isEmpty()
有时会因为 null 而不是大小为 0 的列表而产生 NPE。
有什么问题吗?
可能是空指针。 推荐使用:
CollectionUtils.isEmpty(priceList)