java mongoTemplate 查询条件为空判断查询

网上搜了好久并没有找到类似的问题,记录一下。

mybatis的mapper查询中,有一个可以判断传入参数为空,则不加此where的方法,就是,如下:


            
                #{phone}
            
        

在使用mongodb数据库时如何进行类似的操作呢?

注意:请不要使用and,请不要使用and,请不要使用and!使用and的代码如下:

不使用and就可以实现mybatis的if功能,就这么简单!!!

@Override
    public List findByNameArtistAlbum(String name, String artistName, String albumName) {
        Query query = new Query();
        if (!name.isEmpty()) {
            query.addCriteria(Criteria.where("name").is(name));
        }
        if (!artistName.isEmpty()) {
            query.addCriteria(Criteria.where("artists.name").is(artistName));
        }
        if (!albumName.isEmpty()) {
            query.addCriteria(Criteria.where("album.name").is(albumName));
        }
        return mongoTemplate.find(query,Music.class);
    }

具体内部不用细看,就是不要使用and,就解决这个问题了。

你可能感兴趣的:(java)