大战熟女丰满人妻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ù)文檔推薦 >>
主站蜘蛛池模板: 黄视频网站免费看 | 欧美 激情 在线 | 亚洲精品久久久久久久久久久网站 | 毛片毛片毛片毛片 | 黄色在线免费观看 | 日本一区二区三区久久 | 成人国产片免费 | 特黄特a级特别特级特毛片 特黄特黄aaaa级毛片免费看 | 九九影院 影片 | 四虎国产精品永久地址51 | 欧美精品国产一区二区 | 日本一级特黄aa毛片免费观看 | 日本亚洲欧洲免费无码 | 日日久| 不卡免费播放 | 九九热视频免费在线观看 | 国产高清久久99 | 午夜一级| 国产福利视屏 | 久久青青草原精品国产麻豆 | 国产成人精品一区 | 一级一片| 九九热视频这里只有精品 | 狠狠色欧美亚洲狠狠色五 | 日韩欧美一区二区三区久久 | 青草社区视频 | 在线视频一区二区三区四区 | 在线综合+亚洲+欧美中文字幕 | aaaaaa国产毛片孕妇版 | 美女视频黄a视频免费全过程在线 | 免费精品美女久久久久久久久 | 亚洲欧美天堂网 | 亚洲欧美日韩国产色另类 | 激情四播 | 国产色丁香久久综合 | 99影视在线视频免费观看 | 色多多h| sss欧美华人整片在线观看 | 成人999 | 在线免费一区二区 | 天天干天天操天天做 |