1
我一直試圖從EclipseLink中的表中獲取所有行。從表中獲取所有記錄 - EclipseLink
我使用JPA工具從db創建了我的實體。這是結果:
@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;
}
}
我發現那裏的人創建查詢對象來獲取所有的記錄很多網頁,但他們再這樣定義「選擇」查詢。
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();
}
是否有查詢此,只使用類名稱的更簡單的方式?因爲映射的實體已經包含select查詢。
我的意思不是這樣
Query q = em.createQuery("from Employee e", Employee.class);
要做到像這個虛構的例子:
Query q = em.createQuery(Employee.class);
感謝。我沒有意識到在我的實體中的屬性。我認爲它在內部被eclipselink框架自動使用。另外,我認爲這不能改變它作爲配置的一部分。現在我知道這更靈活了。 –
太好了。你可以創建所有你想要的'NamedQueries'。 –