jpa 去重_JPA 查询Distinct Join条件示例

本文介绍了如何在JPA中使用DISTINCT关键字与JOIN操作来获取连接条件的唯一值。通过一个教授、部门、电话等实体的示例,展示了在查询项目时去除重复部门的方法。
摘要由CSDN通过智能技术生成

JPA教程 - JPA查询Distinct Join条件示例

以下查询使用distinct关键字以获取连接条件的唯一值。List l = em.createQuery(

"SELECT DISTINCT e.department FROM Project p JOIN p.employees e WHERE p.name = "proj"")

.getResultList();

例子

以下代码来自Phone.java。package cn.w3cschool.common;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.ManyToOne;

@Entity

public class Phone {

@Id

private long id;

private String number;

private String type;

@ManyToOne

Professor employee;

public long getId() {

return id;

}

public void setId(long id) {

this.id = id;

}

public String getNumber() {

return number;

}

public void setNumber(String phoneNo) {

this.number = phoneNo;

}

public String getType() {

return type;

}

public void setType(String phoneType) {

this.type = phoneType;

}

public Professor getProfessor() {

return employee;

}

public void setProfessor(Professor employee) {

this.employee = employee;

}

public String toString() {

return "Phone id: " + getId() +

", no: " + getNumber() +

", type: " + getType();

}

}

下面的代码来自Department.java。package cn.w3cschool.common;

import java.util.HashSet;

import java.util.Set;

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 Set employees = new HashSet();

public int getId() {

return id;

}

public void setId(int deptNo) {

this.id = deptNo;

}

public String getName() {

return name;

}

public void setName(String deptName) {

this.name = deptName;

}

public Set getProfessors() {

return employees;

}

public String toString() {

return "Department no: " + getId() +

", name: " + getName();

}

}

以下代码来自Professor.java。package cn.w3cschool.common;

import java.util.ArrayList;

import java.util.Collection;

import java.util.Date;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值