从 table 获取所有记录 - EclipseLink
Get all records from table - EclipseLink
我一直在尝试从 EclipseLink 中的 table 获取所有行。
我使用 JPA 工具从数据库创建了我的实体。这是结果:
@Entity
@Table(name="employee", schema="hr")
@NamedQuery(name="Employee.findAll", query="SELECT e FROM Employee e")
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
private String name;
public Employee() {
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
我发现很多页面上人们创建查询对象来获取所有记录,但他们又像这样定义了 "select" 查询。
Query q = em.createQuery("select e from Employee e");
但是做了一个研究,最后我发现了这样的东西:
public List<Employee> getEmployees() {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("ResourcesService");
EntityManager em = factory.createEntityManager();
Query q = em.createQuery("from Employee e", Employee.class);
return q.getResultList();
}
是否有更简单的查询方式,仅使用 class 名称?因为映射的实体已经包含 select 查询。
我的意思是不这样做
Query q = em.createQuery("from Employee e", Employee.class);
做类似这个虚构示例的事情:
Query q = em.createQuery(Employee.class);
为什么不使用您定义的命名查询?
em.createNamedQuery("Employee.findAll").getResultList();
您可以将其命名为 "Employee.class" ... :-)
我一直在尝试从 EclipseLink 中的 table 获取所有行。
我使用 JPA 工具从数据库创建了我的实体。这是结果:
@Entity
@Table(name="employee", schema="hr")
@NamedQuery(name="Employee.findAll", query="SELECT e FROM Employee e")
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
private String name;
public Employee() {
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
我发现很多页面上人们创建查询对象来获取所有记录,但他们又像这样定义了 "select" 查询。
Query q = em.createQuery("select e from Employee e");
但是做了一个研究,最后我发现了这样的东西:
public List<Employee> getEmployees() {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("ResourcesService");
EntityManager em = factory.createEntityManager();
Query q = em.createQuery("from Employee e", Employee.class);
return q.getResultList();
}
是否有更简单的查询方式,仅使用 class 名称?因为映射的实体已经包含 select 查询。
我的意思是不这样做
Query q = em.createQuery("from Employee e", Employee.class);
做类似这个虚构示例的事情:
Query q = em.createQuery(Employee.class);
为什么不使用您定义的命名查询?
em.createNamedQuery("Employee.findAll").getResultList();
您可以将其命名为 "Employee.class" ... :-)