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)