Hibernate Liste mit allen Objekten einer Entity

computersport

Aktives Mitglied
Hallo Community,

Ich versuche im moment eine Liste mit allen Objekten zu bekommen die unter einer Bestimmten
Entity abgespeichert werden.

Aber ich glaub ich stell mich einfach zu blöd an. Vielleicht weiß einer wie es geht.
Hier mal ne Auflistung wie ich es bisher versucht habe
Java:
List<FabrikListe> fabrikliste = (List<FabrikListe>) session
					.createCriteria(FabrikListe.class).list();
Java:
List<FabrikListe> fabrikliste = (List<FabrikListe>) session.createQuery("from FabrikListe as fabrikliste")
			.list();
Java:
List<FabrikListe> fabrikliste = (List<FabrikListe>) session.createQuery("from FabrikListe")
			.list();

greetz
Compi
 
S

SlaterB

Gast
die dritte klingt gut, absolut äquivalent ist
Java:
List<FabrikListe> fabrikliste = session.createQuery("from FabrikListe").list()
man kann nicht generisch casten

----

was funktioniert daran denn nicht?
 

computersport

Aktives Mitglied
An sich sollte es ja funktionieren dummerweise krieg ich keine Liste zurückgegeben obwohl in der DB mindestens ein Eintrag vorhanden ist. Ich werd es zuhause nochmal ausprobieren und gucken ob der Fehler evtl. auf der Client seite von GWT liegt und mich dann zurück melden.
 
S

SlaterB

Gast
wie kam/ kommt das Objekt denn in die Liste, zufällig parallel neu eingefügt mit einem DB Tool und noch kein commit?
 

computersport

Aktives Mitglied
Also das speichern des Objekts in der Datenbank funktioniert einwandfrei. Hab dort drei einträge aber wenn ich mir die Liste aus der DB hole mit hibernate krieg ich immer ne NullPointerException

Entweder dort wird irgendwas nicht richtig übergeben oder der holt sich nichts aus der DB.
 
S

SlaterB

Gast
es gibt noch
session.createSQLQuery()
wenn da auch nichts kommt, dann liegt es zumindest eher nicht an den Hibernate-Mappings usw.
 

computersport

Aktives Mitglied
Klingt jetzt zwar etwas blöd aber wie würde der SQL befehl heißen?

Ich hab mich direkt mit SQL nicht auseinandergesetzt sondern nur mit den Befehlen von Hibernate.
 
S

SlaterB

Gast
select * from richtigerTabellenname

ich frage mich wie du dann auf anderen Wege festgestellt hast, ob etwas in der Tabelle drin ist
 

computersport

Aktives Mitglied
Ich glaub ich hab das Problem gefunden:

Dies ist der Code auf der Client seite wo ich mir die Liste hole:

[Java]
private List<DTOFabrik> getFarbiken() {
final Container<List<DTOFabrik>> container = new Container<List<DTOFabrik>>();
FabrikServiceAsync service = (FabrikServiceAsync) GWT.create(FabrikService.class);
ServiceDefTarget servicedef = (ServiceDefTarget) service;
servicedef.setServiceEntryPoint(GWT.getModuleBaseURL() + "fabrik");

AsyncCallback<List<DTOFabrik>> callback = new AsyncCallback<List<DTOFabrik>>() {

@Override
public void onSuccess(List<DTOFabrik> result) {
container.setData(result);

}

@Override
public void onFailure(Throwable caught) {

}
};

service.getFabrikListe(callback);
List<DTOFabrik> result = container.getData();
GWT.log(result.get(1).getName());
return result;

}
[/code]

Und das ist die Fehler mleudng die ich für "GWT.log(result.get(1).getName());" erhalte
Java:
java.lang.NullPointerException: null
    at ourProject.client.UI.admin.fabrik.AdminNeueFabrikUI.getFarbiken(AdminNeueFabrikUI.java:252)
    at ourProject.client.UI.admin.fabrik.AdminNeueFabrikUI.access$0(AdminNeueFabrikUI.java:230)
    at ourProject.client.UI.admin.fabrik.AdminNeueFabrikUI$1.onSelection(AdminNeueFabrikUI.java:77)
    at com.google.gwt.event.logical.shared.SelectionEvent.dispatch(SelectionEvent.java:89)
    at com.google.gwt.event.logical.shared.SelectionEvent.dispatch(SelectionEvent.java:1)
    at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.fireEvent(HandlerManager.java:65)
    at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.access$1(HandlerManager.java:53)
    at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:178)
    at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:52)
    at com.google.gwt.event.logical.shared.SelectionEvent.fire(SelectionEvent.java:43)
    at com.google.gwt.user.client.ui.TabPanel.onTabSelected(TabPanel.java:383)
    at com.google.gwt.user.client.ui.ListenerWrapper$WrappedTabListener.onSelection(ListenerWrapper.java:754)
    at com.google.gwt.event.logical.shared.SelectionEvent.dispatch(SelectionEvent.java:89)
    at com.google.gwt.event.logical.shared.SelectionEvent.dispatch(SelectionEvent.java:1)
    at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.fireEvent(HandlerManager.java:65)
    at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.access$1(HandlerManager.java:53)
    at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:178)
    at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:52)
    at com.google.gwt.event.logical.shared.SelectionEvent.fire(SelectionEvent.java:43)
    at com.google.gwt.user.client.ui.TabBar.selectTab(TabBar.java:462)
    at com.google.gwt.user.client.ui.TabBar.selectTabByTabWidget(TabBar.java:601)
    at com.google.gwt.user.client.ui.TabBar.access$0(TabBar.java:596)
    at com.google.gwt.user.client.ui.TabBar$ClickDelegatePanel.onBrowserEvent(TabBar.java:151)
    at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1307)
    at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1263)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
    at com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java:1714)
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:165)
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:507)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:264)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
    at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
    at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:188)
    at sun.reflect.GeneratedMethodAccessor61.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
    at com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java:1669)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:401)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:222)
    at java.lang.Thread.run(Unknown Source)

Und dies ist die Klasse Container:

Java:
package ourProject.client.ArbeitsKlassen;

public class Container<T> {
	public T data;
	
	public T getData() {
		return data;
	}
	public void setData(T data) {
		this.data = data;
	}

}

Kann es sein das die Liste irgendwie verloren geht wenn ich diese im Container Speichere?
 
S

SlaterB

Gast
nicht kompliziert denken, stattdessen einfach denken,
viel logischer ist doch, dass
> container.setData(result);
gar nicht erst ausgeführt wird, und das gehört geloggt

wie viel einfacher wäre alles, wenn du nur die simpelsten Befehle hinschreiben würdest, die es gibt:

> System.out.println("speichere result in container: "+result);
> container.setData(result);


> List<DTOFabrik> result = container.getData();
> System.out.println("verwende gleich result aus container: "+result);
> GWT.log(result.get(1).getName());
 

computersport

Aktives Mitglied
Also das Loggen werd ich mir zu herzen nehmen erspart einem eine Menge arbeit.

Also innerhalb der Methode onSuccess wird result geloggt.

Jedoch wird nicht "verwende gleich result aus container: " nicht angezeigt....
Die Exception zeigt auf den punkt wo ich mir die Daten mit Container.getData() hole.
 
S

SlaterB

Gast
eine andere Exception als vorher bzw. andere Position?
oder wird nur die Anzeige minimal verschoben weil du weiter oben eine neue Zeile eingefügt hast?
füge noch mehr Leerzeilen ein, verschiebe den Code gar testweise eine neue Untermethode ganz woanders hin,
genau testen wer wem einen Streich spielt

container auf null zu loggen ist fast überflüssig, da es eine finale Variable ist, dennoch besser tun
 

computersport

Aktives Mitglied
Ich hab das befüllen der Listbox jetzt direkt in der onSuccess methode gemacht und jetzt klappt es, bloß warum klammt es sonst nicht.....

Java:
	private void getFarbiken() {
		FabrikServiceAsync service = (FabrikServiceAsync) GWT.create(FabrikService.class);
		ServiceDefTarget servicedef = (ServiceDefTarget) service;
		servicedef.setServiceEntryPoint(GWT.getModuleBaseURL() + "fabrik");
		
		AsyncCallback<List<DTOFabrik>> callback = new AsyncCallback<List<DTOFabrik>>() {
			
			@Override
			public void onSuccess(List<DTOFabrik> result) {
				List<DTOFabrik> dtofabrikliste = result;
				Object[] elements = dtofabrikliste.toArray();
				for(int i = 0; i < dtofabrikliste.size(); i++) {
					DTOFabrik dto = (DTOFabrik) elements[i];
					listboxAuswahl.addItem(dto.getName());
				}
			}
			
			@Override
			public void onFailure(Throwable caught) {
				
			}
		};
		System.out.println("vor dem Service");
		service.getFabrikListe(callback);
	}
 
S

SlaterB

Gast
was ich mit dem Logging eigentlich erreichen wollte ist wohl auch eingetreten, nur ist es nicht so leicht zu interpretieren
und ich selber habe auch nicht mehr genau genug daran gedacht,

das Problem ist wahrscheinlich, dass der Code mit
> GWT.log(result.get(1).getName());
VOR dem Aufruf der Methode im AsyncCallback stattfindet,
deswegen heißt es sicher AsyncCallback, weil es kein direkter Callback ist sondern ein wenig dauert,

du müsstest also erst die Ausgabe
> "verwende gleich result aus container: "+result
erhalten, dann den vielen Text durch die Exception, dann später
> "speichere result in container: "+result

dass du das so nicht in der Anzeige vorliegen hast, kann daran liegen, dass Fehler in System.err geschrieben werden und Ausgaben in System.out,
diese beiden Streams werden mehr oder wieder durcheinanders ausgegeben,
deswegen 'speichere'-Ausgabe vor der Exception und 'verwende' nicht zu erkennen weil das wer weiß wo steht,
vor nach, zwischen der langem Exception-Ausgabe, Text-Suche hilft vielleicht

Möglichkeiten das deutlicher zu machen:
- System.err.println() statt System.out.println() verwenden,
- mit Thread.sleep(); längere Pausen zwischen den Befehlen/ Ausgaben durchführen
- aktuelle Zeit mitloggen
- einen professionellen Logger verwenden

-------

zum Problem hast du wahrscheinlich schon die optimale Lösung gewählt, die Verarbeitung sollte in den AsyncCallback,
oder Thread.sleep() kann helfen, warten bis AsyncCallback fertig ist
 

computersport

Aktives Mitglied
was ich mit dem Logging eigentlich erreichen wollte ist wohl auch eingetreten, nur ist es nicht so leicht zu interpretieren
und ich selber habe auch nicht mehr genau genug daran gedacht,

das Problem ist wahrscheinlich, dass der Code mit
> GWT.log(result.get(1).getName());
VOR dem Aufruf der Methode im AsyncCallback stattfindet,
deswegen heißt es sicher AsyncCallback, weil es kein direkter Callback ist sondern ein wenig dauert,

du müsstest also erst die Ausgabe
> "verwende gleich result aus container: "+result
erhalten, dann den vielen Text durch die Exception, dann später
> "speichere result in container: "+result

dass du das so nicht in der Anzeige vorliegen hast, kann daran liegen, dass Fehler in System.err geschrieben werden und Ausgaben in System.out,
diese beiden Streams werden mehr oder wieder durcheinanders ausgegeben,
deswegen 'speichere'-Ausgabe vor der Exception und 'verwende' nicht zu erkennen weil das wer weiß wo steht,
vor nach, zwischen der langem Exception-Ausgabe, Text-Suche hilft vielleicht

Möglichkeiten das deutlicher zu machen:
- System.err.println() statt System.out.println() verwenden,
- mit Thread.sleep(); längere Pausen zwischen den Befehlen/ Ausgaben durchführen
- aktuelle Zeit mitloggen
- einen professionellen Logger verwenden

-------

zum Problem hast du wahrscheinlich schon die optimale Lösung gewählt, die Verarbeitung sollte in den AsyncCallback,
oder Thread.sleep() kann helfen, warten bis AsyncCallback fertig ist


Betreffend "Thread.sleep()" hab ich mich ein bisschen schlau gemacht und glaube das dies in GWT an sich nicht möglich ist. Hier ein Link wo darauf eingegangen wird. Ist aber auf Englisch.
Für alle die evtl. das gleiche Problem haben.

My RPC won't work AKA That's not Async - Google Web Toolkit | Google Groups

Ich hoffe ich konnte helfen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Hibernate: Sortierte Liste Persistieren Datenbankprogrammierung 3
sparrow [Hibernate] Die Liste einer Verknüpfung selber setzen Datenbankprogrammierung 2
K Hibernate: Liste von String-Werten Datenbankprogrammierung 2
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
I Hibernate Predicate mit IN Clause "Unaware how to convert value to requested type" Datenbankprogrammierung 0
T org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ..., could not initialize proxy - no Session Datenbankprogrammierung 5
T Realisierungsvorschläge Hibernate SQL Datenbankprogrammierung 1
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Tabellen-Erzeugung via Hibernate ignoriert 'CascadeType' settings Datenbankprogrammierung 1
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
damike84 Hibernate: persistieren eines Graphen Datenbankprogrammierung 2
N Hibernate Entitäten bei Selects aus 2 Tabellen Datenbankprogrammierung 7
OnDemand Hibernate Realationen Datenbankprogrammierung 7
OnDemand Hibernate ManyToOne Datenbankprogrammierung 5
D Hibernate oneToMany Syntaxfehler Datenbankprogrammierung 3
D Hibernate Error: NoSuchMethodError Datenbankprogrammierung 4
D hibernate mit postgreSQL Datenbankprogrammierung 3
S MySQL Hibernate: Fehler bei Verwendung von 2 unterschiedlichen Enumration Datenbankprogrammierung 3
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
OnDemand Hibernate OneToMany ManyToOne Datenbankprogrammierung 61
J Hibernate One-To-One mit Where Klausel Datenbankprogrammierung 6
L hibernate.cfg.xml Could not parse configuration Datenbankprogrammierung 0
L H2 Hibernate definieren? Datenbankprogrammierung 1
T JPA Mapping Enum (hibernate 5) Datenbankprogrammierung 1
H In hibernate.cfg.xml schreiben und auslesen Datenbankprogrammierung 0
K Hibernate: Ein Fluch Datenbankprogrammierung 3
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
K Eclipse: JBoss Hibernate Tool: Kein Zugriff auf Datenbank Datenbankprogrammierung 5
S JpaRepositories & Hibernate: ungewolltes trim() in findBy Datenbankprogrammierung 7
S MySQL hibernate exception: illegal state exception : entityManagerFactory is closed Datenbankprogrammierung 5
S Hibernate: Verschiedene Klassen zurückgeben. Datenbankprogrammierung 2
looparda Architektur für JPA Hibernate Umstieg Datenbankprogrammierung 14
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
perlenfischer1984 Hibernate mit final members Datenbankprogrammierung 3
perlenfischer1984 Java Objecte speichern mit Hibernate ? Datenbankprogrammierung 2
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
N Sqlite3 und Hibernate Datenbankprogrammierung 3
A Hibernate Cache leeren Datenbankprogrammierung 4
I MySQL Hibernate zu viele Queries Datenbankprogrammierung 2
Psypsy Hibernate / JPA erkennen von schon gespeicherten Objekten Datenbankprogrammierung 4
Psypsy Hibernate / JPA OneToOne MappedBy Frage Datenbankprogrammierung 2
J Hibernate + DTOs - DTOs in DAOs verwenden? Datenbankprogrammierung 1
S Hibernate-Konfiguration : Unverständliche Ausgabe beim Ausführen Datenbankprogrammierung 0
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
J Hibernate + HSQL embedded Datenbankprogrammierung 2
P Hibernate Einstieg Datenbankprogrammierung 5
C Hibernate und createQuery Datenbankprogrammierung 2
V kennt jemand empfehlenswerte online tutorials zur Hibernate ? gerne auch englisch. Datenbankprogrammierung 4
G H2 Hibernate - wie joins machen Datenbankprogrammierung 1
D Hibernate: Zustand eines Objekts erkennen? Datenbankprogrammierung 0
D Unterschiede Hibernate Vs. Java Persistence API Datenbankprogrammierung 8
I Hibernate / JPA Index hinzufügen Datenbankprogrammierung 1
X Hibernate Cache Verständnisproblem Datenbankprogrammierung 0
T Hibernate und inner class Datenbankprogrammierung 0
K n:m Tabellen mit Hibernate erstellen Datenbankprogrammierung 1
T Hibernate DAO gute Tutorials/Bücher gesucht Datenbankprogrammierung 0
C Hibernate: could not resolve property Datenbankprogrammierung 1
J Plug-In-Framework für Hibernate-Klassen Datenbankprogrammierung 0
M Hibernate - Save Child wenn nötig Datenbankprogrammierung 10
M DAO's + Hibernate Theorie Datenbankprogrammierung 4
T Hibernate, HSQLDB und UNIQUE Datenbankprogrammierung 2
F Hibernate - verschiedene Schemen Datenbankprogrammierung 7
D Hibernate SaveOrUpdate Exception Datenbankprogrammierung 2
D Hibernate CreateQuery ohne Result Datenbankprogrammierung 7
E MySQL Hibernate mit JaxWS führt zu LazyInitialization Exception Datenbankprogrammierung 8
L Einarbeitung in Hibernate -> wenn gute SQL Kenntnisse vorhanden? Datenbankprogrammierung 2
B DB2 Hibernate findet Datenbank nicht Datenbankprogrammierung 18
K JPA / Hibernate Annotations Datenbankprogrammierung 4
M JPA / Hibernate mit Postgres DB Datenbankprogrammierung 3
P JSF + H2 + TomEE + Hibernate/JPA Datenbank wird nicht angelegt Datenbankprogrammierung 3
E MySQL Hibernate ( Anfänger ) Datenbankprogrammierung 3
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
J Hibernate Select auf Parameterliste Datenbankprogrammierung 3
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
M Hibernate Foreign Key definieren Datenbankprogrammierung 4
M Abstrakte Klassen Hibernate Datenbankprogrammierung 4
D Mit Hibernate (mit Annotation) auf Views zugreifen Datenbankprogrammierung 2
M [Hibernate]Abgleich eines lokalen Objekts mit dem Zustand aus der Datenbank. Datenbankprogrammierung 3
P Mit Hibernate mehrere Datensätze löschen Datenbankprogrammierung 7
P Probleme mit meinem 1. Hibernate Beispiel Datenbankprogrammierung 3
P erste Schritte mit Hibernate Datenbankprogrammierung 3
V Hibernate Interfaces von anderem Projekt Datenbankprogrammierung 2
J MySQL Datenbank konfigurieren, JDBC, MySQL oder Hibernate Datenbankprogrammierung 2
B Hibernate und portierbare Datenbank Datenbankprogrammierung 3
qwerqer [Hibernate] Mappingvarianten Datenbankprogrammierung 2
lumo Teneo Hibernate & JPA Datenbankprogrammierung 15
Z JPA mit Hibernate - Unable to build EntityManagerFactory Datenbankprogrammierung 7
Dit_ Hibernate, effiziente SQL-Abfrage definieren Datenbankprogrammierung 5
K Hibernate vs. JDBC Datenbankprogrammierung 4
J Hibernate Info 593 ? Datenbankprogrammierung 4
J Erstellen der SessionFactory in Hibernate 4.1 Datenbankprogrammierung 2
L PostgreSQL Hibernate-Frage Datenbankprogrammierung 2
X MySQL Hibernate: Massenupdate auf unbekannte Tabelle Datenbankprogrammierung 4
N hibernate: datasource Datenbankprogrammierung 7
H MySQL Hibernate: Updaten vereinfachen Datenbankprogrammierung 2
T Hibernate Division zweier Summen Datenbankprogrammierung 4
B MySQL Fehler: Cannot open connection mit Tomcat7, Hibernate und MySQL Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben