如果根据文件名或者创建人名进行模糊查询 

这种写法是错误的,容易导致查询条件逻辑混乱

List<KnowledgeBase> list = lambdaQuery()
                .eq(KnowledgeBase::getResourceType, 2)
                 .in(query.getRootIdIn().size()>0,KnowledgeBase::getRootId, query.getRootIdIn())
                 .like(KnowledgeBase::getResourceName, query.getResourceNameLike())
                 .or()
                 .like(KnowledgeBase::getCreateByName, query.getResourceNameLike()
                .orderByDesc(KnowledgeBase::getCreateTime)
                 .last("LIMIT 100")
                .list();

 应该吧这个or的放到一个and中

List<KnowledgeBase> list = lambdaQuery()
                .eq(KnowledgeBase::getResourceType, 2)
                 .in(query.getRootIdIn().size()>0,KnowledgeBase::getRootId, query.getRootIdIn())
                 .and(query.getResourceNameLike()!=null &&!("").equals(query.getResourceNameLike()),wrapper ->
                         wrapper.like(KnowledgeBase::getResourceName, query.getResourceNameLike())
                                 .or()
                                 .like(KnowledgeBase::getCreateByName, query.getResourceNameLike())
                 )
                .orderByDesc(KnowledgeBase::getCreateTime)
                 .last("LIMIT 100")
                .list();

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐