当前位置: 首页 > 知识库问答 >
问题:

如何使用条件查询在Spring JPA中查询一对多关系

贺轶
2023-03-14

现在我需要正在学习‘程序设计’课程的学生名单

如何使用条件查询实现这一点。

共有1个答案

江建明
2023-03-14

试试看:

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Student> cq = cb.createQuery(Student.class);

Root<Student> rootStudent = cq.from(Student.class);
Join<Student,Course> joinCourse = rootStudent.join("courses",JoinType.INNER);

cq.where(cb.equals(joinCourse.get("Name"),"Proggraming"));
cq.select(rootStudent);

List<Student> res = entityManager.createQuery(cq).getResultList();

在本例中,我假设您已经对JPA实体进行了良好的建模,包括双向关系。如果对API使用POJO而不是将JPA实体返回到web部件,也会建议使用multiselect来代替select并指定您想要获得的每个字段,但作为第一近似值,它将是有效的。

对于JPA实体使用元模型也是可取的,而不是通过名为(join、get methods..)的字符串访问属性

 类似资料:
  • 我在Eclipselink2.3.2中使用JPA2.0,在其中,我在产品和它们的颜色之间建立了多对多的关系。一个产品可以有多种颜色,一种颜色可以与多种产品相关联。这种关系在数据库中由三个表表示。 null 很明显,实体类有一组颜色-,它被命名为。 实体类有一组产品-,它被命名为。 我需要根据提供的与表中的颜色不匹配的从表中获取颜色列表。 对应的JPQL如下所示。 它生成以下SQL语句。 因为这将是

  • 问题内容: 因此,我有以下实体: 因此,没有对的引用,这意味着我们具有单向一对多关系。我需要寻找一个by 和。也就是说,找到具有指定posId的供应商,然后在供应商的pos列表中找到一个pos。如何为此编写条件查询? 我尝试使用子查询。我的想法是创建一个子查询,该子查询将获取具有给定条件的a的所有内容。然后,主查询将那些中搜索的一个给定。 问题是我无法编写查询来获取s的s列表。显然,您不能编写以下

  • 实现了一对多的关系,它运行良好。 我的问题是当我运行下面的查询时,如果表有100个员工行,每个员工有两个部门。数据库查询被调用了101次,因为对每个员工都是调用部门查询,要完成调用全部100行需要很长时间,有没有人可以提出替代的解决方案? 输出XML:

  • 本文向大家介绍php查询及多条件查询,包括了php查询及多条件查询的使用技巧和注意事项,需要的朋友参考一下 单条件查询: 1.先要有一张表,显示出表中的数据: 上图: 啥都没改的一张表 2.再来个from表单,让用户输入,点击查询: 如图: 3.建立关键字查询: 图: 多条件查询: 前面照旧; 出了php的语句: 效果图: 这样:有几个条件就做几个条件变量,第一个条件不为空就执行的第一个条件,第二

  • 问题内容: 我不确定如何描述这个问题,所以我认为举个例子是问我问题的最好方法: 我有两个表具有多对多关系: 驾驶执照<-> LicenceClass LicenceClass是“汽车”,“摩托车”和“中型刚性”之类的东西。 使用Hibernate Criteria,如何找到同时具有“汽车”和“摩托车” LicenceClasses的所有许可证? 2008年12月11日更新我发现可以使用自定义Res

  • 我试图让api返回一个注释列表,通过与标签的多对多关系关联,给定一个标签ID。Spring boot自动创建了一个名为notes_tables的桥接表,其中包含一个notes_id字段和一个labels_id字段。Spring Boot还创建了一个notes表和一个labels表。我尝试了以下步骤: 我只需要让它工作,但我特别好奇我是否能让它与jpa方法查询一起工作。任何查询都可以,只要它可以工作