spring data jpa 多对多查询

以用户-角色 多读多为例:

User类,用户

@Entity
public class User {private String username;private String nickname;private String password;private String avatar;private String email;private String mobile;/*** 用户的所有角色*/@ManyToMany(cascade = CascadeType.DETACH)@JoinTable(name = "user_role_relation",joinColumns = @JoinColumn(name = "userId"),inverseJoinColumns = @JoinColumn(name = "roleId"))private Set<Role> roles = new HashSet<>();//...省略gets sets
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

Role类,角色

@Entity
public class Role {/*** 角色名称*/private String name;/*** 角色拥有权限的资源集合*/@ManyToMany(cascade = CascadeType.DETACH,fetch = FetchType.EAGER)@JoinTable(name = "role_resource_relation",joinColumns = @JoinColumn(name = "roleId"),inverseJoinColumns = @JoinColumn(name = "resourceId"))private Set<Resource> resources  = new HashSet<>();//... 省略gets sets
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
SetJoin<User, Role> roles = root.join(root.getModel().getSet("roles", Role.class), JoinType.LEFT);
Predicate in = roles.in(ids);//省略Predicate的使用,拿到Predicate后就解决了set集合的in查询

spring data jpa 多对多查询相关推荐

  1. spring data jpa实现分页查询功能

    spring data jpa实现分页查询功能 HTML代码部分: // 收派标准信息表格 $('#grid').datagrid( {iconCls : 'icon-forward',fit : t ...

  2. Spring Data JPA多表查询

    多表查询在Spring Data JPA中有两种实现方式 第一种创建一个结果集接口来接收多表连查的结果 第二种利用JPA的关联映射来实现 先来熟悉一下几个注解 注解 意思 属性 @ManyToOne ...

  3. spring data jpa 的 in 查询 Specification 实现

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 只是一个简单需求:  查询所有部门id 属于  idList 的数据 Page<WorkWei ...

  4. Spring Data JPA自定义SELECT查询语句,自定义UPDATE修改语句

    查询语句: 1. 在@Query 注解里设置value ,?1.?2 分别代表第一第二个参数, nativeQuery=true  表示是否是原生SQL @Query(value = "se ...

  5. java data jpa_java中Spring data jpa通过Predicate查询时间段

    如下,想搜索time1和time2之间的数据,但是查不到cb是重写了方法中的参数CriteriaBuilder,root是参数Rootpredicates.add(cb.between(root.ge ...

  6. 【Spring Data JPA自学笔记五】一对多、多对多和级联

    文章目录 数据库表的关系 一对多 多对多 Spring Data JPA实现一对多 基本配置 实现一对多 放弃维护权 Spring Data JPA实现多对多 基本配置 实现多对多 级联 之前的所有操 ...

  7. Spring Data JPA

    1.    概述 Spring JPA通过为用户统一创建和销毁EntityManager,进行事务管理,简化JPA的配置等使用户的开发更加简便. Spring Data JPA是在Spring JPA ...

  8. Spring Data JPA教程

    在Java类或对象与关系数据库之间管理数据是一项非常繁琐且棘手的任务. DAO层通常包含许多样板代码,应简化这些样板代码,以减少代码行数并使代码可重复使用. 在本教程中,我们将讨论Spring数据的J ...

  9. Spring Data JPA简单学习

    从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示 ...

最新文章

  1. yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss
  2. 太尴尬!百度某程序员向领导请假去面试,却在面试一楼大厅和领导相遇,网友:缘分啊!回去一起对对面试题!...
  3. linux 用户行为审计update1
  4. [2897]F SDUTOJ
  5. dxf转nc代码软件_FastCAM激光版套料软件
  6. 西门子博图的FB块_西门子S7-300/400PLC OB-FB-FC-DB块介绍
  7. 如何才能学好单片机?​
  8. 【chromium】 渲染显示相关概念
  9. discuz mysql 类_discuz7 phpMysql操作类
  10. 简单的移动端打开pdf文件。
  11. Android Studio的使用(四)--生成Get、Set方法
  12. linux shell的sleep指定延时单位
  13. 梆梆加固还原DEX文件
  14. mongodb,Mysql,redis基础教程
  15. 支付宝疯起来连自己都打
  16. 米4用linux刷机救转,小米4变砖之后如何刷机自救?大神教你小米4线刷救砖方法...
  17. 关于笔记本测试的面试准备 2021-10-11
  18. Java生成随机数的方法
  19. python毕业论文参考文献格式范例_毕业论文参考文献规范格式及范例
  20. 沉没成本谬误(一):你是如何被“套牢”的?(二):吃饱撑着也要把东西吃完

热门文章

  1. 18.03.21 继承作业
  2. Kotlin学习笔记-1
  3. php 获取服务器进程数,PHP 获取linux服务器性能CPU、内存、硬盘、进程等使用率...
  4. Android10 WIFI MAC地址获取流程
  5. 使用nvml获取n卡温度
  6. 免越狱中控你们知道多少呢?
  7. 如何用键盘控制windows窗口移动
  8. NLP 1st (导入)
  9. laravel-admin多图上传小技巧
  10. vue悬浮框自由移动+录音功能