Ich habe versucht, alle Zeilen aus der Tabelle in EclipseLink zu bekommen.Holen Sie sich alle Datensätze aus der Tabelle - EclipseLink
Ich habe meine Entitäten aus db mit den JPA-Tools erstellt. Dies ist das Ergebnis:
@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;
}
}
ich viele Seiten gefunden, wo die Menschen schaffen Abfrage Objekt alle Datensätze zu erhalten, aber sie definieren wieder die „select“ Abfrage wie folgt.
Query q = em.createQuery("select e from Employee e");
Aber eine Forschung, schließlich fand ich etwas wie folgt aus:
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();
}
Gibt es eine noch einfachere Möglichkeit, dies zu fragen, nur den Klassennamen verwenden? Weil die zugeordnete Entität bereits die Auswahlabfrage enthält.
Ich meine, anstatt dies zu tun
Query q = em.createQuery("from Employee e", Employee.class);
so etwas wie dieses fiktive Beispiel zu tun:
Query q = em.createQuery(Employee.class);
Danke. Ich habe dieses Attribut in meiner Entität nicht erkannt. Ich dachte, dass es intern vom eclipselink-Framework automatisch verwendet wurde. Und außerdem dachte ich, dass das als Teil der Konfiguration das nicht ändern könnte. Jetzt weiß ich, dass das flexibler ist. –
Großartig. Sie können alle gewünschten NamedQueries erstellen. –