springboot中使用JOIN实现关联表查询

更新时间:2023-05-16 18:33:47 阅读: 评论:0

springboot中使⽤JOIN实现关联表查询
* ⾸先要确保你的表和想要关联的表有外键连接
repository中添加接⼝JpaSpecificationExecutor<?>,就可以使⽤springboot jpa 提供的API了。
@Repository
什么是爵士乐public interface MyEntityRepository extends JpaRepository<MyEntity, Integer>, JpaSpecificationExecutor<MyEntity> {
//...
}
在查询⽅法中调⽤ JpaSpecificationExecutor 提供的 findAll() ⽅法,查询到我们需要的结果集,先上代码,后续说明
public Page<MyEntity> getMerchants(List<Integer> fKIds, String sortField, String entityName,
Integer pageNum) {
Pageable pageable = PageRequest.of(pageNum, 20, Direction.DESC, sortField);
@SuppressWarnings("rial")
用卡盟Page<MyEntity> page = myEntityRepository.findAll(new Specification<MyEntity>() {
@Override
public Predicate toPredicate(Root<MyEntity> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
if (fKIds!= null) {
Join<MyEntity, EntityDetails> join = root.join("entityDetails");
list.add(join .get("id").in(fKIds));
}
Predicate[] array = new Predicate[list.size()];
return cb.Array(array));
}
}, pageable);
return page;创新创业想法
蜡炬成灰泪始干
}
代码解释:
从字开头的成语
强奸罪定义fKIds,这⾥为了顺便记录in查询,我查询的条件是 ityDetails.id in fKIds,就是关联表字段的in查询
汤圆要煮多久
sortField, pageNum为分页参数
toPredicate⽅法构建了查询条件的集合
这⾥join的精髓就是,获取join对象,通过join对象进⾏查询条件的构建。
iteria.Join<MyEntity, EntityDetails>
A join to an entity, embeddable, or basic type.
Type Parameters:<Z> the source type of the join
眉毛浓的女人代表什么<X> the target type of the join
Since:Java Persistence 2.0
低调总结:真的不太⽤的来博客园这个编辑器(^_^),其实蛮好⽤的,多⽤就知道了。

本文发布于:2023-05-16 18:33:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/904781.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:查询   关联   条件   代码
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图