querydsl sub query

本文介绍了在Java中如何处理多对多和一对多的关系。通过使用JPASubQuery进行子查询来实现这些关系的查询操作。具体包括如何构建多对多关系的UserTag列表以及一对多关系的Discussion到Topic的子查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多对多关系
List<UserTag> utList = new ArrayList<UserTag>();
				for(Long id : tagIdList){
					UserTag ut = this.userTagService.getDao().findOne(id);
					utList.add(ut);
				}
				QUser qUser = QUser.user;
				QUserTags qUserTags = QUserTags.userTags;
				//添加子查询
				ListSubQuery<User> user = new JPASubQuery()
				  .from(qUserTags)
				  .where(qUserTags.tag.in(utList)).list(qUserTags.user);
				e = (e==null)?e = qUser.in(user):e.and(e = qUser.in(user));

一对多关系:

QDiscussion qDiscussion = QDiscussion.discussion;
			ListSubQuery<Topic> topic = new JPASubQuery()
			  .from(qDiscussion)
			  .where(qDiscussion.content.contains(discussion)).list(qDiscussion.topic);
			e = (e==null)?e = qTopic.in(topic):e.and(e = qTopic.in(topic));
		}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值