如何在Spring Mongo JPA的@Query注解中编写动态查询
Spring Mongo @Query实现非空字段筛选及Criteria Builder问题
我想通过Spring Mongo的@Query注解编写查询语句,实现仅根据前端传来的非空字段筛选数据,但目前尝试的写法都返回了所有记录:
第一次尝试的代码:
@Query("{ { $or: [ { $where: '?0 == null' }, { name: '?0' } ] }" + " { $or: [ { $where: '?1 == null' }, { age: '?1' } ] }" + " { $or: [ { $where: '?2 == null' }, { batch: '?2' } ] }" + " { $or: [ { $where: '?3 == null' }, { $or: [{startDate: '?3'}, {endDate: '?3'}] } ] } }")
编辑补充:后来我把$or嵌套在$and中,结果还是返回所有记录:
@Query("{$and:{" + " { $or: [ { $where: '?0 == null' }, { name: '?0' } ] }," + " { $or: [ { $where: '?1 == null' }, { age: '?1' } ] }," + " { $or: [ { $where: '?2 == null' }, { batch: '?2' } ] }," + "}}")
编辑补充:之后我尝试用Criteria Builder来实现,但现在提示找不到find()方法(代码中query对象调用find()时标红报错)。
内容的提问来源于stack exchange,提问作者confused_geek
相关产品推荐
相关产品推荐

