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() { Professor emp = new Professor(); emp.setId(1); emp.setName("name"); em.persist(emp); TypedQuery<Professor> query = em.createQuery("SELECT e FROM Employee e", Professor.class); List<Professor> emps = query.getResultList(); } @PersistenceContext private EntityManager em; }
下载 TypedQuery.zip