JPQL-根据子实体的某些条件获取父实体以及匹配的子实体

时间:2017-01-04 12:32:35

标签: hibernate jpa jpql

我有两个拥有OneToMany关系的JPA实体。

@Entity
public class Department {
@Id private int id;
private String name;
@OneToMany(fetch = LAZY, mappedBy = "department", cascade = { CascadeType.ALL }, orphanRemoval = true)
private Set<Employee> employees;
// ...
}

员工

@Entity
public class Employee {
@Id private int id;

@ManyToOne
@JoinColumn(name="DEPT_ID")
private Department department;
// ...
}

现在我想获取员工姓名以'A'开头的所有部门,并且返回的集合应该只包含那些 符合标准的员工。

例如,如果A部门有5名员工,他们的名字是A,B,C,D,E,B部门有3名员工 其名称为A,AA,Z查询应该导致:

清单大小= 2。

Department A
            id=1
            name='A'
            Set<Employee> size 1 with name 'A'

Department B
            id=2
            name='B'
            Set<Employee> size 2 with name 'A' and 'AA'

如何使用JPQL实现此目的?

非常感谢任何帮助。

编辑:如果我想获取没有员工的部门怎么办?

0 个答案:

没有答案