[Hibernate] Objektinhalte auslesen

dianthus

Mitglied
Hallo zusammen,

folgendes Problem:
Ich habe ein Objekt "meinObjekt", dass 2 Teile beinhaltet.
Zum einen ein weiteres Objekt der Klasse "DSIC" und einen String.

Wie kann ich auf die Inhalte des Objektes "meinObjekt" zugreifen bzw. auslesen?

Vielen Dank schon mal für Eure Hilfe.

lg dia
 
Zuletzt bearbeitet:
Du erstellst einfach ein neues Objekt und greifst dann per Punkt-Operator auf die Inhalte zu:
Code:
meinObjekt obj = new meinObjekt();
obj.[I]DISC[/I]
obj.[I]String[/I]
Wobei DISC und String durch die entsprechenden Variablennamen ersetzt werden sollen.
 
Wie jetzt, was jetzt?
Möchtest du alle Objekte auflisten, die sich auf/in einem Objekt befinden?
Wie kann sich ein String in einem Objekt befinden?

Ich bin durchaus verwirrt!

Ich nehme an, du möchtest fragen, wie du allgemein überhaupt auf einen String zugreifen kannst oder so. Da würd ich dir einfach mal ein Buch über Java empfehlen.

Du schreibst einfach vor jedem Befehl den Namen des Objektes! Bspw. string1.substring(0,1);
 
Wie jetzt, was jetzt?
Möchtest du alle Objekte auflisten, die sich auf/in einem Objekt befinden?
Wie kann sich ein String in einem Objekt befinden?

Aehm meinst du die Frage ernst?

Java:
	private class MeineKlasse {
		private String mName = "";
		public void setName(String pName) { mName = pName; }
		public String getName() { return mName; }
	}

Also aus dieser Klasse kannst du ein Objekt machen und da ist ein String drin 😉
 
Zuletzt bearbeitet:
Insgesamt ist das Problem etwas komplexer.

Ich arbeite hier mit Tapestry und Hibernate.
Über Hibernate wird aus einer Datenbank etwas ausgelesen.
Dabei besteht die Abfrage aus einem Mapping mit zusätzlichem Substring einer Spalte.

Java:
q = session.createQuery("SELECT p, substring(Name,1,4) ...

Die Zeilen lasse ich mir als Liste ausgeben

Java:
result = q.list();
return result;
Das ganze wird in einer Liste gespeichert:

Java:
List meineListe = (function mit Rückgabe von result)

Jetzt möchte ich auf die einzelnen Elemente der Liste zugreifen.

Wenn ich das auf meiner HTML Seite ausgeben lasse funktioniert es, so dass ich das Objekt (welches keine Klasse hat) innerhalb der Liste als Array behandlen kann.

Ich muss jetzt aber den String der mit abgefragt wird, in meiner Javafile, auslesen und innerhalb der Klasse DSIC an bestimmten Stellen wieder einpflegen. Dafür benötige ich den Schritt, dass ich aus einem Objekt den Inhalt auslese.

Ich werde den Vorschlag von "muemmel_0811" mal ausprobieren.

Vielen Dank bisher

lg dia



Edit:
Ich habs schon mit einem Cast probiert, aber das ging nicht.
Also neue Klasse erstellt die mit der Klasse auf DSIC beginnt und dann ein String zusätzlich beinhaltet

Java:
private class MeineKlasse {
    
    private DSIC dsic;
    private String mName = "";

    public void setName(String pName) { mName = pName; }
    public String getName() { return mName; }
}
 
Zuletzt bearbeitet:
Und was soll ich mit den Codeschnipseln jetzt anfangen können?
In welchem Objekt willst du nun worauf zugreifen?

Ist die Liste als gegeben zu betrachten? Es gäbe geeigneters worüber man elegant loopen könnte, aber was ist in der Liste drin? Ich glaube beinahe das können nur Strings sein, aber stimmt das auch?

Wenn es stimmt was du sagst muss ich nur den inneren Aufbau (also die Klasse) des fraglichen Objektes kennen und dann kann ich dir sagen wir du worauf zugreifen kannst.
 
Das ist ja das problem.
Es gibt für die Einträge der Liste, welche Jeweils Objekte sind, keine Klasse.
Die Klasse ist einfach "Object".
Ich vermute aber durch die Abfrage, dass innerhalb dieses Objektes - 2 Objekte stecken müssen.

1.) ein Objekt, das ich Casten will zur Klasse DSIC
2.) ein Objekt, dass den String des ausgelesenen Substrings enthält.

Auf ein Objekt in der Liste greife ich über
Java:
liste.get(liste.size()-1)
zu.
Jetzt will ich aber tiefer gehen. Wie geht das?


In meiner HTML greife ich folgendermaßen auf die Ausgabe zu:
HTML:
<span jwcid="@Foreach" source="ognl:meineFunktionFuerDieListe" value="ognl:platzhalter" >
<span jwcid="@Insert" value="ognl:platzhalter[0].instance"/>
<span jwcid="@Insert" value="ognl:platzhalter[1]"/>
die 0 greift auf das Erste Objekt zu, was der Klasse DSIC entspricht.
die 1 greift auf den substring zu.
 
Zuletzt bearbeitet:
Hat sich erledigt.

Das Problem war der Zugriff auf dieses Objektarray.

Lösung:
Die, durch das HibernateQuery zurückgegebene,Liste mit einem Iterator durchlaufen.
Java:
Iterator results = null;
results = liste.iterator();
		
while ( results.hasNext() ) {
	Object[] row = (Object[]) results.next();
	Klasse myTable = (Klasse) row[0];
	String Color = (String) row[1];
}
Vielen Dank an alle für die Unterstützung!
 

Zurück
Oben