You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ误报SpringBoot中MongoTemplate相关代码不可达

IntelliJ错误判定MongoTemplate查询结果始终非空

以下是业务代码:

public PsaDTO save(PsaDTO psaDTO) {

    Query query = new Query(Criteria.where("numPratica").is(psaDTO.getNumPratica()));

    myLogger.info(myLogger.msgBuilder(MyLogger.SELECT_ID, Constants.PSA), String.valueOf(psaDTO));
    Psa psaSuDb = mongoTemplate.findOne(query, Psa.class);

    if (Objects.nonNull(psaSuDb)) {
        throw exceptionThrower.alreadyOnDbFoundEx(Constants.PSA);
    }

    Psa psa = objectTransformer.toDAO(psaDTO);
    myLogger.info(myLogger.msgBuilder(MyLogger.INSERT, Constants.PSA), String.valueOf(psaDTO));
    psa = mongoTemplate.save(psa);

    return objectTransformer.toDTO(psa);
}

IntelliJ将对象psaSuDb判定为“始终非空”,并对Objects.nonNull(psaSuDb)给出警告:Condition 'Objects.nonNull(psaSuDb)' is always 'true'。

但该判定完全错误,因为当psaSuDb为null时,以下插入逻辑代码是可以被执行到的(已通过调试验证):

Psa psa = objectTransformer.toDAO(psaDTO);
myLogger.info(myLogger.msgBuilder(MyLogger.INSERT, Constants.PSA), String.valueOf(psaDTO));
psa = mongoTemplate.save(psa);

return objectTransformer.toDTO(psa);

推测这是IntelliJ针对mongoTemplate的BUG。

内容的提问来源于stack exchange,提问作者Alessandro Armari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 05:52:05