JPA教程 - JPA查询Distinct多对一示例
DISTINCT运算符在功能上等同于同名的SQL运算符。
收集结果集后,将删除重复值,以便只返回唯一结果。
以下JPQL在多对一映射中使用DISTINCT运算符。
例子
下面的代码来自Department.java。package cn.w3cschool.common;
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class Department {
@Id
private int id;
private String name;
@OneToMany(mappedBy="department")
private Collection employees;
public Department() {
employees = new ArrayList();
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setEmployees(Collection employees) {
this.employees = employees;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public Collection getEmployees() {
return employees;
}
public String toString() {
return "Department no: " + getId() +
", name: " + getName();
}
}
以下代码来自Project.java。package cn.w3cschool.common;
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
@Entity
public class Project {
@Id
protected int id;
protected String name;
@ManyToMany(map