Spring JPA连表查询重复关联如何解决?
技术百科
聖光之護
发布时间:2024-12-01
浏览: 次 spring jpa 连表重复 join 解决方案
为了解决 userentity 和 userarchiveentity 之间重复的 userarchive 关联,可以在 specification 中手动指定连接类型。修改后的代码如下:
specificationspecification = (root, query, criteriabuilder) -> { predicate predicate = criteriabuilder.conjunction(); join userarchiveentityjoin = root.join("userarchive", jointype.left); return predicate; };
对于不同的业务场景需要不同的模型关联,spring jpa 无法提供针对不同关联要求的方法重载。可以使用依赖注入来解决此问题:
@Repository
public class UserRepositoryImpl implements UserRepositoryCustom {
@Autowired
private UserRepository us
erRepository;
@Override
public Page findAllWithUserArchive(Specification specification, Pageable pageable) {
EntityGraph entityGraph = EntityGraph.of(UserEntity.class)
.addSubgraph("userArchive");
return userRepository.findAll(specification, pageable, entityGraph);
}
@Override
public Page findAllWithUserArchiveAndNation(Specification specification, Pageable pageable) {
EntityGraph entityGraph = EntityGraph.of(UserEntity.class)
.addSubgraph("userArchive")
.addSubgraph("userArchive.nation");
return userRepository.findAll(specification, pageable, entityGraph);
}
}
# 可以使用
# spring
# left
# query
# implements
# userarchiveentityjoin
# jointype
# conjunction
# criteriabuilder
# predicate
# UserRepositoryImpl
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Win11怎么制作U盘启动盘_Win11原版系统安
- Win10如何卸载预装Edge扩展_Win10卸载
- Win11怎么清理C盘系统日志_Win11清理系统
- Win11搜索栏无法输入_解决Win11开始菜单搜
- XSLT怎么生成动态的HTML属性名和标签名
- Python面向对象实战讲解_类与设计模式深入理解
- Win11怎么修改DNS服务器 Win11设置DN
- 如何使用Golang reflect检查方法数量_
- Win11怎么设置触控板手势_Windows11三
- 如何使用Golang理解结构体指针方法接收者_Go
- 如何用正则与预处理高效拦截带干扰符的恶意域名
- Win11怎么设置任务栏对齐方式_Windows1
- Win10如何卸载微软拼音输入法 Win10只保留
- Python配置文件操作教程_JSONINIYAM
- Python函数接口文档化_自动化说明【指导】
- Go 语言标准库为何不提供泛型 Contains
- mac怎么分屏_MAC双屏显示与分屏操作技巧【指南
- php修改数据怎么批量改状态_批量更新status
- 如何使用正则表达式批量替换重复的“-”模式为固定字
- php485支持哪些操作系统_php485跨系统支
- 如何在 Go 结构体中正确初始化 map 字段
- Win10如何更改任务栏高度_Windows10解
- Win10如何优化内存使用_Win10内存优化技巧
- 如何使用Golang管理模块版本_Golanggo
- c++如何利用doxygen生成开发文档_c++
- c++怎么调用nana库开发GUI_c++ 现代风
- Win10如何卸载Skype_Win10卸载Sky
- 如何用列表一次性对 DataFrame 的指定列应
- 如何在 Go 中比较自定义的数组类型(如 [20]
- php下载安装包怎么选_threadsafe与nt
- Windows10电脑怎么设置防火墙出站规则_Wi
- WindowsUSB驱动安装异常怎么办_USB驱动
- Windows7怎么找回经典开始菜单_Window
- Mac如何设置动态壁纸?(让桌面动起来)
- Win11如何设置文件关联 Win11修改特定文件
- Win10怎样清理C盘阿里旺旺缓存_Win10清理
- Win11怎么查看激活状态_查询Windows 1
- Windows怎样关闭Edge新标签页广告_Win
- Mac自带的词典App怎么用_Mac添加和使用多语
- Win11如何设置系统声音_Win11系统声音调整
- php怎么下载安装后无法解析php文件_服务器配置
- windows如何测试网速_windows系统网络
- Mac的访达(Finder)怎么用_Mac文件管理
- php嵌入式需要什么环境_搭建php+linux嵌
- Win11时间不对怎么同步_Win11自动校准互联
- 手机php文件怎么变成mp4_安卓苹果打开php转
- PHP主流架构怎么部署到Docker_容器化流程【
- MAC的“接续互通”功能无法使用怎么办_MAC检查
- Win10怎样安装PPT模板_Win10安装PPT
- 如何在 Go 同包不同文件中正确引用结构体

erRepository;
@Override
public Page
QQ客服