UPDATE:
Ich habe evtl eine Ahnung: Es könnte mit den Java Versionen zu tun haben?!
Schaut mal unter diesem Link:
JavaEE5: EntityManager (Java EE 5 SDK)
und dann unter diesem:
JavaEE6: EntityManager (Java EE 6 )
Bei JavaEE5 gibt es nur 1 Variante der Funktion "createQuery()". Unter JavaEE6 gibt es 3 Varianten, u.a. auch die variante, die ich benötige "createQuery(java.lang.String qlString, java.lang.Class<T> resultClass)"
Wie kann ich denn auf eine andere Java Version switchen? Hab derzeit dieses JDK (Java SE 6 Update 24) drauf (Java SE Downloads)
Hallo zusammen,
ich bekomme ständig folgende Fehlermeldung:
Laut Oracle.com gibt es 3 Funktionsaufrufe für diese Funktion:
Mein Code sieht wie folgt aus (der Fehler taucht in Zeile 24 auf!):
Er will in Zeile 24 den Funktionsaufruf "createQuery(java.lang.String qlString)" haben. Ich übergebe aber einen String und eine Klasse (Mitarbeiter). Wenn ich nun spaßeshalber die Klasse herausnehme, damit er wirklich nur den einen String bekommt, den er fordert, sie erhalte ich eine neue Fehlermeldung die mir sagt, dass er einen String und eine Klasse vom Typ Mitarbeiter erwartet.
Ich checks nicht ... Wo ist da der Fehler?
PS: Nutze Netbeans als Programmierumgebung und habe beim projekt auch die TopLink Essentials Library eingebunden.
Ich habe evtl eine Ahnung: Es könnte mit den Java Versionen zu tun haben?!
Schaut mal unter diesem Link:
JavaEE5: EntityManager (Java EE 5 SDK)
und dann unter diesem:
JavaEE6: EntityManager (Java EE 6 )
Bei JavaEE5 gibt es nur 1 Variante der Funktion "createQuery()". Unter JavaEE6 gibt es 3 Varianten, u.a. auch die variante, die ich benötige "createQuery(java.lang.String qlString, java.lang.Class<T> resultClass)"
Wie kann ich denn auf eine andere Java Version switchen? Hab derzeit dieses JDK (Java SE 6 Update 24) drauf (Java SE Downloads)
Hallo zusammen,
ich bekomme ständig folgende Fehlermeldung:
method createQuery in interface javax.persistence.EntityManager cannot be applied to given types required
Laut Oracle.com gibt es 3 Funktionsaufrufe für diese Funktion:
createQuery(CriteriaQuery<T> criteriaQuery)
createQuery(java.lang.String qlString)
createQuery(java.lang.String qlString, java.lang.Class<T> resultClass)
Mein Code sieht wie folgt aus (der Fehler taucht in Zeile 24 auf!):
Java:
package kbs_prak6;
import kbs_prak6.Mitarbeiter;
import java.util.Scanner;
import javax.persistence.EntityTransaction;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Main {
private EntityManagerFactory emf = Persistence.
createEntityManagerFactory("JPA20Beispiel1PU");
private EntityManager em = emf.createEntityManager();
public void beispieldaten() {
String namen[] = {"Egon", "Erwin", "Ute", "Aische"};
em.getTransaction().begin();
for (int i=0; i<namen.length; i++)
em.persist(new Mitarbeiter(i,namen[i]));
em.getTransaction().commit();
}
public void datenZeigen() {
for (Mitarbeiter m : em.createQuery("SELECT m FROM Mitarbeiter m", Mitarbeiter.class).getResultList()) {
System.out.println(m.getMinr() + ": " + m.getName());
}
}
public void schliessen() {
if (em != null && em.isOpen()) {em.close();}
if (emf != null && emf.isOpen()) {emf.close();}
}
public static void main(String[] args) {
Main m = new Main();
m.beispieldaten();
m.datenZeigen();
m.schliessen();
}
public void namenAendern(){
int eingabe=-1;
while(eingabe!=0){
System.out.print("Welche Nummer (Ende mit 0): ");
eingabe=new Scanner(System.in).nextInt();
Mitarbeiter m = em.find(Mitarbeiter.class, eingabe);
if(m == null)
System.out.println("Witzbold");
else{
System.out.print("Neuer Name (alt:"+m.getName()+"): ");
String name=new Scanner(System.in).next();
EntityTransaction tr = em.getTransaction();
tr.begin();
m.setName(name);
tr.commit();
}
}
}
}
Java:
package kbs_prak6;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Mitarbeiter {
@Id private int minr;
private String name;
public Mitarbeiter(){} //parameterloser Konstruktor benötigt
public Mitarbeiter(int minr, String name) { //erlaubt
this.minr = minr;
this.name = name;
}
public int getMinr() {return minr;}
public void setMinr(int minr) {this.minr = minr;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
}
Er will in Zeile 24 den Funktionsaufruf "createQuery(java.lang.String qlString)" haben. Ich übergebe aber einen String und eine Klasse (Mitarbeiter). Wenn ich nun spaßeshalber die Klasse herausnehme, damit er wirklich nur den einen String bekommt, den er fordert, sie erhalte ich eine neue Fehlermeldung die mir sagt, dass er einen String und eine Klasse vom Typ Mitarbeiter erwartet.
Ich checks nicht ... Wo ist da der Fehler?
PS: Nutze Netbeans als Programmierumgebung und habe beim projekt auch die TopLink Essentials Library eingebunden.
Zuletzt bearbeitet: