Wie man mehrere Spalten aus der Tabelle mit JPA?
Ich habe zum Beispiel eine Tabelle als Student es ist enthalten Spalten wie id, Namen, Alter
Ich bin ein zurücksetzen bestimmten Spalte Werte mit NativeQuery wie unten.
Query query = entityManager.createNativeQuery("SELECT age FROM Student");
List list=query.getResultList();
Mithilfe von Abfrage, die Wir erhalten Liste der Altersstufen im Student Tabelle
Jetzt möchte ich, um Alter und Namen aus der Tabelle.
Query query = entityManager.createNativeQuery("SELECT age,name FROM Student");
List list=query.getResultList();
Wenn ich weiß, wie das Mein code ausführen und gut, aber Wie bekomme ich Namen in einer Liste und Alter in einer anderen Liste.Also, wie kann ich dies tun. Vielen Dank
Hinweis
Ich habe keine Entity-Klasse oder POJO-Klassen in meinem Projekt bin ich immer der Tabelle von der Datenbank mit Einheitlichen Abfrage.
was Ausnahme wirft. Sollte es funktioniert und gibt eine Liste von object[]
Ich bin traurig, dass es ausgeführt wird, aber wie kann ich das Alter in einer anderen Liste und den Namen in einer anderen Liste. danke
Verwendung von cast, wie für(Ojbect o:Liste){Object[] values = (Object[])o;int Alter = (int)Werte[0];String name = (String)values[1];}
Vielen Dank Es funktioniert Prima
Ich bin traurig, dass es ausgeführt wird, aber wie kann ich das Alter in einer anderen Liste und den Namen in einer anderen Liste. danke
Verwendung von cast, wie für(Ojbect o:Liste){Object[] values = (Object[])o;int Alter = (int)Werte[0];String name = (String)values[1];}
Vielen Dank Es funktioniert Prima
InformationsquelleAutor Prabha | 2014-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie Ansatz es zwei Möglichkeiten.
Analysieren die Werte aus dem ResultSet in separaten Listen. Da Sie nicht über eine Person definiert, die Abfrage einer
Für jede Zeile zurück, die Sie zugreifen können, Alter und name der index, in dem Sie erscheinen. also das Alter ist zuerst in deinem obigen Beispiel, so würden Sie es, wäre der index 0 und der Name ist index 1.
Zwei Abfragen verwenden. Einer, der auswählt, ALTER und die andere, wählt NAMEN. Jeder wird zurückkehren, die entsprechenden Werte zu, es ist eine eigene Liste.
Nur Nachteil dieser Methode ist, dass es keine wahre Beziehung zwischen den beiden Listen. In anderen Worten, Alters[3] kann logisch nicht übereinstimmen, Namen[3]. Aber... wie es ist, die ursprüngliche Frage keine definition, wie die zwei Listen erstellt werden soll.
Ich hatte das gleiche problem habe ich behoben, indem die cating wie : int Alter = (int) obj[0]; String name = (String) obj[1];
InformationsquelleAutor dispake
Ich glaube, dass diese Frage beantwortet wurde hier.
Jedoch empfehle ich das erstellen einer standard Entität namens " Student mit den Spalten name und Alter. Dieser Ansatz ist sehr viel einfacher zu implementieren und zu pflegen, es in der Zukunft.
Ich denke, der einfachste Weg ist, um Sie zu erstellen. Allerdings, wenn Sie nicht wollen, es zu tun - Sie sollten erwägen, mit standard-java.sql.Connection-Instanz? Auf diese Weise werden Sie verwalten die Abfrage und die Ergebnisse selbst. mit 100% - Kontrolle.
InformationsquelleAutor Sebastian Łaskawiec
Ich auf der Grundlage der Antwort von @dispake, schlug er zwei Wege, dieses Problem zu beheben, aber er vergaß tu setzen Sie das casting für den ersten Möglichkeiten. Meiner Meinung nach ist es die optimierten ein (Sie brauchen nur zu tun, eine Abfrage statt zwei) machen Sie es wie diese :
Ich hoffe, dies wird Ihnen helfen,
InformationsquelleAutor Abderrahim