[英]How to query with greaterThan for an embedded document using Spring Data MongoDB Repository?
[英]Spring Data Mongodb Query by embedded document id
我正在尝试查询包含@Reference 作为属性的 model,例如:
public class TaskGroups {
@Reference
Branch branch;
.
.
.
}
依此类推,然后我有一个包含更多逻辑和代码的查询,但在简历中,我必须按分支 object 中的字段 _id 进行过滤,它在 object 上只是 id,但在数据库上它的 _id,没问题,它对于框架的正常行为.
好的,现在不起作用的代码:
public class TaskGroupRepositoryImpl implements TaskGroupCustomRepository {
private final MongoTemplate mongoTemplate;
@Autowired
public TaskGroupRepositoryImpl(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
@Override
public List<TaskGroup> query(TaskGroupDynamicQuery queryObject) {
Query query = new Query();
final List<Criteria> criterias = new ArrayList<>();
criterias.add(Criteria.where("deleted").is(false));
if (queryObject.getBranchId() != null) {
criterias.add(Criteria.where("branch._id").is(new ObjectId(queryObject.getBranchId())));
}
.
.
.
}
因此,当代码运行时,查询会将“branch._id”字段更改为仅分支。 然后没有记录返回...
有了这种行为,我需要做一个解决方法,将结果映射到 Object,然后转换为任务组 class,然后查询对属性名称没有修改,并且过滤器不会出现问题。
这是一个错误吗? 还是它的正常行为? 是否有任何解决方法可以避免在 id 字段时更改此属性名称?
附件。
尝试使用类似 branch.$id 的东西
Criteria.where("branch" + "." + "$" + "id")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.