大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 JPA in查詢的例子

JPA in查詢的例子

更新時(shí)間:2022-10-24 09:41:16 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1774次

IN表達(dá)式可以檢查單值路徑表達(dá)式是否是集合的成員。

集合可以內(nèi)聯(lián)定義為一組字面值,或者可以從子查詢派生。

以下代碼顯示了如何在JPQL中使用IN運(yùn)算符。

List l = em.createQuery(
"SELECT DISTINCT p FROM Professor e, IN(e.phones) p")
.getResultList();

以下代碼顯示如何使用NOT IN運(yùn)算符

List l = em.createQuery(
"SELECT e FROM Professor e WHERE e.address.state NOT IN ("NY", "CA")")
.getResultList();

例子

下面的代碼來自PersonDaoImpl.java。

package cn.w3cschool.common;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.transaction.annotation.Transactional;
@Transactional
public class PersonDaoImpl {
public void test() {
prepareData();
List l = em.createQuery(
"SELECT DISTINCT p FROM Professor e, IN(e.phones) p")
.getResultList();
for (Object p : l) {
printResult(p);
}
}
private void prepareData() {
Professor p = new Professor();
p.setId(0);
p.setName("TOM");
p.setSalary(1111L);
Department d = new Department();
d.setId(1);
d.setName("Design");
p.setDepartment(d);
d.getProfessors().add(p);
Phone phone = new Phone();
phone.setId(1);
phone.setNumber("111-111-1111");
phone.setProfessor(p);
em.persist(p);
em.persist(phone);
em.persist(d);
}
private static void printResult(Object result) {
if (result == null) {
System.out.print("NULL");
} else if (result instanceof Object[]) {
Object[] row = (Object[]) result;
System.out.print("[");
for (int i = 0; i < row.length; i++) {
printResult(row[i]);
}
System.out.print("]");
} else if (result instanceof Long || result instanceof Double
|| result instanceof String) {
System.out.print(result.getClass().getName() + ": " + result);
} else {
System.out.print(result);
}
System.out.println();
}
@PersistenceContext
private EntityManager em;
}

以下代碼來自Address.java。

package cn.w3cschool.common;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Address {
@Id
private int id;
private String street;
private String city;
private String state;
private String zip;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getStreet() {
return street;
}
public void setStreet(String address) {
this.street = address;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getZip() {
return zip;
}
public void setZip(String zip) {
this.zip = zip;
}
public String toString() {
return "Address id: " + getId() +
", street: " + getStreet() +
", city: " + getCity() +
", state: " + getState() +
", zip: " + getZip();
}
}

以下代碼來自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();
}
}

以下代碼來自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.Inheritance;
import javax.persistence.ManyToMany;
@Entity
@Inheritance
public class Project {
@Id
protected int id;
protected String name;
@ManyToMany
protected Collection employees = new ArrayList();
public int getId() {
return id;
}
public void setId(int projectNo) {
this.id = projectNo;
}
public String getName() {
return name;
}
public void setName(String projectName) {
this.name = projectName;
}
public Collection getProfessors() {
return employees;
}
public void addProfessor(Professor employee) {
if (!getProfessors().contains(employee)) {
getProfessors().add(employee);
}
if (!employee.getProjects().contains(this)) {
employee.getProjects().add(this);
}
}
public String toString() {
return getClass().getName().substring(getClass().getName().lastIndexOf(".")+1) +
" no: " + getId() +
", name: " + getName();
}
}

以下代碼來自Professor.java。

package cn.w3cschool.common;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
public class Professor {
@Id
private int id;
private String name;
private long salary;
@Temporal(TemporalType.DATE)
private Date startDate;
@OneToOne
private Address address;
@OneToMany(mappedBy="employee")
private Collection phones = new ArrayList();
@ManyToOne
private Department department;
@ManyToOne
private Professor manager;
@OneToMany(mappedBy="manager")
private Collection directs = new ArrayList();
@ManyToMany(mappedBy="employees")
private Collection projects = new ArrayList();
public int getId() {
return id;
}
public void setId(int empNo) {
this.id = empNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getSalary() {
return salary;
}
public void setSalary(long salary) {
this.salary = salary;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Collection getPhones() {
return phones;
}
public void addPhone(Phone phone) {
if (!getPhones().contains(phone)) {
getPhones().add(phone);
if (phone.getProfessor() != null) {
phone.getProfessor().getPhones().remove(phone);
}
phone.setProfessor(this);
}
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
if (this.department != null) {
this.department.getProfessors().remove(this);
}
this.department = department;
this.department.getProfessors().add(this);
}
public Collection getDirects() {
return directs;
}
public void addDirect(Professor employee) {
if (!getDirects().contains(employee)) {
getDirects().add(employee);
if (employee.getManager() != null) {
employee.getManager().getDirects().remove(employee);
}
employee.setManager(this);
}
}
public Professor getManager() {
return manager;
}
public void setManager(Professor manager) {
this.manager = manager;
}
public Collection getProjects() {
return projects;
}
public void addProject(Project project) {
if (!getProjects().contains(project)) {
getProjects().add(project);
}
if (!project.getProfessors().contains(this)) {
project.getProfessors().add(this);
}
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public String toString() {
return "Professor " + getId() +
": name: " + getName() +
", salary: " + getSalary() +
", phones: " + getPhones() +
", managerNo: " + ((getManager() == null) ? null : getManager().getId()) +
", deptNo: " + ((getDepartment() == null) ? null : getDepartment().getId());
}
}

下載 Query_IN.zip

下載 Query_NOT_IN.zip

上面的代碼生成以下結(jié)果。

Table Name: ADDRESS
Table Name: DEPARTMENT
Row:
Column Name: ID,
Column Type: INTEGER:
Column Value: 1
Column Name: NAME,
Column Type: VARCHAR:
Column Value: Design
Table Name: PHONE
Row:
Column Name: ID,
Column Type: BIGINT:
Column Value: 1
Column Name: NUMBER,
Column Type: VARCHAR:
Column Value: 111-111-1111
Column Name: TYPE,
Column Type: VARCHAR:
Column Value: null
Column Name: EMPLOYEE_ID,
Column Type: INTEGER:
Column Value: 0
Table Name: PROFESSOR
Row:
Column Name: ID,
Column Type: INTEGER:
Column Value: 0
Column Name: NAME,
Column Type: VARCHAR:
Column Value: TOM
Column Name: SALARY,
Column Type: BIGINT:
Column Value: 1111
Column Name: STARTDATE,
Column Type: DATE:
Column Value: null
Column Name: ADDRESS_ID,
Column Type: INTEGER:
Column Value: null
Column Name: DEPARTMENT_ID,
Column Type: INTEGER:
Column Value: 1
Column Name: MANAGER_ID,
Column Type: INTEGER:
Column Value: null
Table Name: PROJECT
Table Name: PROJECT_PROFESSOR

 

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 97精品国产综合久久久久久欧美 | 国产一级毛片视频在线! | 天天综合亚洲 | 日本人成免费大片 | 精品在线免费播放 | 国产欧美精品一区二区三区 | 国产精品不卡 | 神马影院在线观看我不卡 | 四虎影院中文字幕 | 久久久久国产成人精品 | 欧美日韩视频一区三区二区 | 中国在线播放精品区 | 日韩欧美在线不卡 | 国产精品久久久久久久久免费观看 | 日韩 欧美 亚洲 中文字幕 | 免费观看一级特黄欧美大片 | 久久久久久尹人网香蕉 | 久久婷五月综合 | 国产精品网站在线观看 | 亚洲国产成人久久精品影视 | 精品无码久久久久国产 | 日本不卡视频在线 | 亚洲欧美日韩伦中文 | 九天玄帝诀王凡小说免费阅读 | 免费又爽又黄禁片视频在线播放 | 青青青在线视频播放免费 | 日本一区二区三区四区公司 | 国产精品看片 | 欧美一级刺激毛片 | xxxx免费观看 | 久久精品成人国产午夜 | 久久精品国产99久久久 | 欧美久久精品一级c片片 | 日韩亚洲欧美一区 | 午夜亚洲精品久久久久久 | 九九九九热精品视频 | 99久久综合狠狠综合久久 | 深夜网站在线 | 日本人69视频页码jlzz | 人人干视频在线观看 | 亚洲图区综合 |