Metadaten (Spaltenüberschrift) über EntityBean auslesen?

Status
Nicht offen für weitere Antworten.

nimo22

Aktives Mitglied
Hallo,

habe nun eine Datamodel angelegt, welches Daten aus der Datenbank über eine Entity-Bean in eine Liste herausliest und als "model" speichert.

Code:
public DataModel getApplications() {
        EntityManager em = getEntityManager();
        try{
            Query q = em.createQuery("select object(o) from Customer as o");
            q.setMaxResults(batchSize);
            q.setFirstResult(firstItem);
            model = new ListDataModel(q.getResultList());
            return model;
        } finally {
            em.close();
        }
    }

Das funktioniert soweit. Nun will ich aus den hergeholten Daten auch deren Spaltenüberschriften wissen. Habe keine Funktion im DATAMODEL dafür gefunden. Über

Code:
ResultSet rs = stmt.executeQuery();
      ResultSetMetaData rsmd = rs.getMetaData();
      
      while (rs.next())
        {
            for (int i = 1; i <= colCount; i++)
            {
                String columnName = rsmd.getColumnName(i);
                string.append("<" + columnName + ">");

            }
            xml.append("</Row>");
        }

würde das Herauslesen der Metadaten (Spaltenüberschrift) funzen, ABER ich will doch net wieder den Umweg über ne direkte Datenbankverknüpfung haben, weil ich nen OR-Mapper benutze.

Wie hol ich mir die Metadaten am elegantesten her??? Ich weiß, dass ich die Spaltenüberschriften auch bereits in der dementsprechenden Entity-Bean (Customer) habe..kann ich diese vielleicht irgendwie zum model (in ne liste) automatisch assoziieren?

danke vorab.
 
M

maki

Gast
Ähhm... weis nciht ob du da richtig bist.

Was haben Spaltennamen aus der DB in der View zu suchen wenn man Hibernate/JPA oder sonst ein ORM verwendet?
Gar nix! ;)

Es ist Aufgabe der View, sowas darzustellen ;)
 

nimo22

Aktives Mitglied
nun ja, unabhängig von der View (JSF)!!

Man muss doch die Metadaten aus der Datenbank herauslesen können, während er die Abfrage

Code:
Query q = em.createQuery("select object(o) from Customer as o");
model = new ListDataModel(q.getResultList());
return model;

macht. Oder stehen die Spaltenüberschriften der Daten in "q.getResultList()" ??? Die Spaltenüberschriften stehen ja auch in der Entity-Bean-Klasse..(kann man diese vielleicht über Annotations ansprechen?...kein Plan). Kann man statt "ResultList" nen "ResultSet" nehmen, um dann an die Metadaten ranzukommen???

Ich benötige die Spaltenüberschriften,

erstens:

um XML-Tags dafür zu erzeugen: Die Spaltenüberschriften sollen dann die XML-Tags repräsentieren.
So muss ich nicht mühselig die Spaltennamen selber schreiben, ich geh dann einfach per Loop ne Liste durch...
Wenn ich ne JDBC-Abfrage mach, funktioniert das ja einwandfrei...


zweitens:

um in der View über einen Loop ne Tabelle zu erzeugen, ohne die Spaltenüberschriften manuell einzugeben..
(Ich weiss, per JSF geht das mit der TagLib SQL...aber ich will in der JSF nicht ne Datenbankverknüpfung machen
um dann die Tabellenüberschriften zu bekommen..)


Du sagst:

Was haben Spaltennamen aus der DB in der View zu suchen wenn man Hibernate/JPA oder sonst ein ORM verwendet?

Spaltennamen sollen doch in der View (JSF) angezeigt werden..die muss ich doch auch leider manuell angeben., oder?

Du sagst:

Es ist Aufgabe der View, sowas darzustellen
Es soll doch nicht Aufgabe der View sein, herauszufinden, zu welcher Spaltenüberschrift die Daten der jeweiligen Spalte gehören.
[/code]
 
M

maki

Gast
Die Namen der Spalten sind für die View unwichtig, wichtig ist der Name der Property und was die View als Header für diese Property anzeigen soll.

Spaltennamen sind normalerweise nicht schön bzw. sinnvoll für User(CUSTOMER_ID_FK, DOCUMENT_ID_PK, ...), da sie zu technisch sind, ausserdem will man normalerweise in der Lage sein, die Header zu lokalisieren.

Jedenfalls bist du auf dem Holzweg imho ;)

Solltest mehr OO denken, Objekte und Properties anstatt Tabellen und Spaltennamen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Spring Microservices...Lesen und Schreiben über ein Microservice ? Allgemeines EE 4
E Wie kann ich über einen Suchfeld in Java Server Pages nach Datenbankinhalten suchen? Allgemeines EE 11
L Webseiten Formulare über Java Oberfläche ausfüllen? Allgemeines EE 2
F JSP Problem mit Datenbankanbindung über Glassfishserver Allgemeines EE 4
S Pfad-Zugriff über Servlet-init() Allgemeines EE 2
musiKk Datenbankzugriffe über JAX-WS und JPA Allgemeines EE 6
P Können abstrakte Klassen über WSDL versendet werden? Allgemeines EE 3
A File Donwlad über jsp Allgemeines EE 6
W Übliche Art "lokale" Parameter an Servlets zu über Allgemeines EE 2
S oracle db über jboss in jsp Allgemeines EE 19
D DB-Anbindung über das Internet Allgemeines EE 43
A Annotation "ID: Primary Key über mehrere Spalten möglic Allgemeines EE 3
M Einbindung von fremder Klasse über Skriplet Allgemeines EE 4
G Upload über JSP --> byte[] ? Allgemeines EE 5
R JBoss über lokale IP ansprechen Allgemeines EE 16
M Mehrere Webanwendungen über einen Webserver? Allgemeines EE 2
M Jsf-Seitenaufteilung über div! Allgemeines EE 2
B Spring: Verz. "images" in Web-INF über URL verfügb Allgemeines EE 5
C HashMap über Webservice übertragen Allgemeines EE 2
W servlet über https Allgemeines EE 2
D Servlet Problem über Server Allgemeines EE 26
B JSF - Servlet mit Parametern über einen Link öffnen Allgemeines EE 3
H j_security_check über requestdispatcher Allgemeines EE 3
N selectOneMenu - items über ajax Allgemeines EE 3
E bei struts inhalte über mehrere seite verteilen Allgemeines EE 6
S Best-Practice? Daten über Tier-Grenzen hinweg? Allgemeines EE 2
P E-mails alias über Servlets einrichten bei Strato- Allgemeines EE 16
F Package beim Cookie-setzten über BEAN nicht gefunden Allgemeines EE 4
D Eure Meinung über Internal Server Error Allgemeines EE 2
G Methodenaufruf über Klick auf Button Allgemeines EE 3
D Problem - Ansteuerung von Hardware über Webservices Allgemeines EE 10
T JavaMail Programm: Nachricht über Proxy versenden Allgemeines EE 3
M MVC in J2EE: mehrere JSPs über ein Servlet kontrollieren Allgemeines EE 7
D Sessions über mehrer wars ansprechen Allgemeines EE 3
M Übersicht über Application Server Allgemeines EE 3
T Variablen von Bean über Servlet setzen Allgemeines EE 5
Z Gute Tutorial über JSP Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben