mongoDB的Criteria查询:多表联合查询

问题概述:新接手的项目首次接触非关系型数据库mongodb,找不到地方直接写SQL,只能通过Criteria查询数据库。只好查资料用hibernate的Criteria多表查询方法,总是和网上的情况不一样,原来mongodb的Criteria不一样。

问题详情:有三张表,用户表,角色表,权限表。用户角色多对一,角色权限多对多。通过权限id查询拥有该权限的角色


解决办法

	@RequestMapping("/findUserByResource")
	@ResponseBody
	public List<User> findUserByResource(String reid){
		//
		Resource resource = resourceService.findOne(reid,"basic_resource");
		List<Criteria> criterias = new ArrayList<>();
		criterias.add(Criteria.where("resources").in(resource));
		List<Role> roleList = roleService.findAll("basic_role",criterias,"ASC","_id");
		List<Criteria> criterias2 = new ArrayList<>();
		criterias2.add(Criteria.where("roles").in(roleList));
		List<User> userList = userService.findAll(collectionId,criterias2,"ASC","_id");
		return userList;
	}

无法用一句SQL解决,那就只好这样分步执行了,有更好的办法吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值