Java教程 第58页

JPA 查询连接OrderBy示例-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JPA 查询连接OrderBy示例

JPA教程 – JPA查询连接OrderBy示例 以下代码显示如何使用ORDER BY子句和连接条件。 List l = em.createQuery("SELECT e " + "FROM Project p JOIN p.employees e " + "WHERE p.name = :project " + "ORDER BY e.name") .setParameter("project", "Design") .getResultList(); 例子 以下代码来自Employee.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.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @NamedQueries({ @NamedQuery(name="findEmployeesAboveSal", query="SELECT e " + "FROM Employee e " + "WHERE e.department = :dept AND " + " e.salary > :sal"), @NamedQuery(name="findHighestPaidByDepartment", query="SELECT e " + "FROM Employee e " + "WHERE e.department = :dept AND " + " e.salary = (SELECT MAX(e2.salary) " + " FROM Employee e2 " + " WHERE e2.department = :dept)") }) public...

JPA 查询连接提取示例-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JPA 查询连接提取示例

JPA教程 – JPA查询连接提取示例 以下代码显示了JPQL的连接提取语法。 List l = em.createQuery( "SELECT e FROM Professor e JOIN FETCH e.address") .getResultList(); 例子 下面的代码来自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<Professor> employees = new HashSet<Professor>(); 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<Professor> 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;...

JPA 查询连接多对一示例-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JPA 查询连接多对一示例

JPA教程 – JPA查询连接多对一示例 以下JPQL显示如何连接多对一映射。 "SELECT p FROM Professor e JOIN e.phones p") 例子 下面的代码来自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<Professor> employees = new HashSet<Professor>(); 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<Professor> 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; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import...

JPA 查询检索多对一映射示例-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JPA 查询检索多对一映射示例

JPA教程 – JPA查询检索多对一映射示例 以下查询从多对一映射检索实体。 List l = em.createQuery("SELECT d.employees FROM Department d") .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 d.employees FROM Department d") .getResultList(); for (Object p : l) { printResult(p); } } private void prepareData() { Professor p = new Professor(); p.setId(0); p.setName("TOM"); Department d = new Department(); d.setId(1); d.setName("Design"); p.setDepartment(d); d.getProfessors().add(p); em.persist(p); 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...

JPA 查询多个命名查询示例

JPA教程 – JPA查询多个命名查询示例 以下代码创建几个命名查询。 @Entity @NamedQueries({ @NamedQuery(name="Professor.findAll", query="SELECT e FROM Professor e"), @NamedQuery(name="Professor.findByPrimaryKey", query="SELECT e FROM Professor e WHERE e.id = :id"), @NamedQuery(name="Professor.findByName", query="SELECT e FROM Professor e WHERE e.name = :name") }) public class Professor { @Id private int id; 例子 以下代码来自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.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @NamedQueries({ @NamedQuery(name="Professor.findAll", query="SELECT e FROM Professor e"), @NamedQuery(name="Professor.findByPrimaryKey", query="SELECT e FROM Professor e WHERE e.id = :id"), @NamedQuery(name="Professor.findByName", query="SELECT e FROM Professor e WHERE e.name = :name") }) public class Professor { @Id private int id; private String name; private long salary; @Temporal(TemporalType.DATE) private Date startDate; @OneToOne private...

JPA 命名查询参数类型示例

JPA教程 – JPA命名查询参数类型示例 在命名查询中,我们还可以添加参数。 @Entity @NamedQueries({ @NamedQuery(name="findEmployeesAboveSal", query="SELECT e " + "FROM Employee e " + "WHERE e.department = :dept AND " + " e.salary > :sal"), @NamedQuery(name="findHighestPaidByDepartment", query="SELECT e " + "FROM Employee e " + "WHERE e.department = :dept AND " + " e.salary = (SELECT MAX(e2.salary) " + " FROM Employee e2 " + " WHERE e2.department = :dept)") }) public class Employee { 例子 以下代码来自Employee.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.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @NamedQueries({ @NamedQuery(name="findEmployeesAboveSal", query="SELECT e " + "FROM Employee e " + "WHERE e.department = :dept AND " + " e.salary > :sal"), @NamedQuery(name="findHighestPaidByDepartment", query="SELECT...

JPA 类型化查询示例

JPA教程 – JPA 类型化查询示例 以下代码创建了一个类型化的查询。TypedQuery可以有通用参数。 TypedQuery<Professor> query = em.createQuery("SELECT e FROM Employee e", Professor.class); 例子 以下代码来自Professor.java。 package cn.w3cschool.common; import java.util.Date; import javax.persistence.Column; import javax.persistence.DiscriminatorColumn; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @Table(name="EMP") public class Professor { @Id private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String toString() { return "Professor id: " + getId() + " name: " + getName(); } } 下面的代码来自PersonDaoImpl.java。 package cn.w3cschool.common; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.TypedQuery; import org.springframework.transaction.annotation.Transactional; @Transactional public class PersonDaoImpl { public void test()...

JPA 查询命名示例-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JPA 查询命名示例

JPA教程 – JPA查询命名示例 命名查询是用于组织查询定义和提高应用程序性能的强大工具。 命名查询是使用@NamedQuery注释定义的,它可以放在任何实体的类定义上。 注释定义查询的名称以及查询文本。 以下代码显示如何使用注释创建命名查询。 @NamedQuery(name="findSalaryForNameAndDepartment", query="SELECT e.salary " + "FROM Employee e " + "WHERE e.department.name = :deptName AND " + " e.name = :empName") 命名查询通常放置在最直接对应于查询结果的实体类上,因此Employee实体将是此命名查询的良好位置。 查询的名称的范围限定为整个持久性单元,并且在该范围内必须是唯一的。 通常的做法是在查询名称前加上实体名称。 例如,Employee实体的“findAll”查询将命名为“Employee.findAll”。 以下代码显示为实体创建多个命名查询 @NamedQueries({ @NamedQuery(name="Employee.findAll", query="SELECT e FROM Employee e"), @NamedQuery(name="Employee.findByPrimaryKey", query="SELECT e FROM Employee e WHERE e.id = :id"), @NamedQuery(name="Employee.findByName", query="SELECT e FROM Employee e WHERE e.name = :name") }) 例子 以下代码创建单个命名查询。 @Entity @NamedQuery(name="findSalary", query="SELECT e.salary " + "FROM Professor e ") public class Professor { 以下代码来自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; }...

JPA 查询结果输出示例-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JPA 查询结果输出示例

JPA教程 – JPA查询结果输出示例 查询的结果类型由查询的SELECT子句中列出的表达式确定。 查询的查询结果是对象列表。并且列表中的Object可以是Object[]。 下面的代码循环遍历对象和输出的列表。如果对象是一个Object[],它也循环该数组。 private void printQueryResult(String queryString, List result) { System.out.println("EJB QL: " + queryString+"\n"); System.out.println("Result:\n"); if (result.isEmpty()) { System.out.println("No results Found\n"); } else { for (Object o : result) { System.out.println(resultAsString(o)); } } } private String resultAsString(Object o) { if (o instanceof Object[]) { return Arrays.asList((Object[])o).toString(); } else { return String.valueOf(o); } } 例子 以下代码来自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(mappedBy="projects") private Collection<Employee> employees; public Project() { employees = new ArrayList<Employee>(); } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setEmployees(Collection<Employee> employees) { this.employees =...

JPA 查询分页示例-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JPA 查询分页示例

JPA教程 – JPA查询分页示例 PersonDaoImpl在下面的部分显示如何逐页显示结果。 例子 下面的代码来自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<Employee> employees; public Department() { employees = new ArrayList<Employee>(); } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setEmployees(Collection<Employee> employees) { this.employees = employees; } public int getId() { return id; } public String getName() { return name; } public Collection<Employee> getEmployees() { return employees; } public String toString() { return "Department no: " + getId() + ", name: " + getName(); } } 下面的代码来自PersonDaoImpl.java。 package cn.w3cschool.common; import java.util.Collection; import java.util.Date; import java.util.List; import javax.persistence.EntityManager; import...