Eure Meinung bitte

Dieses Thema Eure Meinung bitte im Forum "Data Tier" wurde erstellt von mario87b, 6. Aug. 2014.

Thema: Eure Meinung bitte Hallo. Ich mache gerade an einer Anwendung rum und wollte mal fragen ob das so der Königsweg ist. Gleich...

  1. Hallo.

    Ich mache gerade an einer Anwendung rum und wollte mal fragen ob das so der Königsweg ist. Gleich vorneweg, es funktioniert alles wie gewünscht, nur kommt mir die Art und Weise ein bisschen umständlich vor.

    Ich habe eine MySQL Datenbank siehe dem Bild.

    wb.png

    Das ganze wird per Hibernate angebunden. Ich nutze JSF 2.2 in Verbindung mit PrimeFaces 3.x, einem Tomcat 7.0.50.

    Meine Frage betrifft die EL Language in den entsprechenden xhtml Dateien. Ich frage via Hibernate die Tabelle Request ab. Hier die mapping Datei.

    [XML]<?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <!-- Generated 24.07.2014 09:53:03 by Hibernate Tools 3.6.0 -->
    <hibernate-mapping>
    <class name="fileService.Request" table="request" catalog="fileService">
    <id name="idrequest" type="java.lang.Integer">
    <column name="idrequest" />
    <generator class="identity" />
    </id>
    <property name="reqAt" type="timestamp">
    <column name="reqAt" length="19" not-null="true" />
    </property>
    <property name="pending" type="boolean">
    <column name="pending" not-null="true" />
    </property>
    <property name="ack" type="boolean">
    <column name="ack" not-null="true" />
    </property>
    <set name="shareHasUsers" table="share_has_user" inverse="true" lazy="true" fetch="select">
    <key>
    <column name="request_idrequest" not-null="true" />
    </key>
    <one-to-many class="fileService.ShareHasUser" />
    </set>
    </class>
    </hibernate-mapping>[/XML]

    Über die ManagedBean und Hibernate komme ich dann zu einem Objekt der Klasse DataModel, das Ding ist Teil des PrimeFaces Frameworks.

    Hier ein Auszug:

    Code (Text):
    ...
    public DataModel getAdminRequest () {
            logger.entry();
            if (adminRequest == null) {
                adminRequest = new ListDataModel (helper.getAdminRequest());
            }
           
            return adminRequest;
        }
    ...
    Im JSF File sieht das dann so aus, auch hier nur ein Auszug, die entsprechende Tabelle. Bei mir gehen die Fragezeichen in den Zeilen 15, 21, 27, 33 und 39 an. Soll das so sein. Ich meine es funktioniert ohne Probleme und nachvollziehbar ist es auch. Es wird durch das Mapping ja ein ziemlich geschachteltes Konstrukt aufgebaut und die DataModel ist nichts weiter als ein List Objekt mit ein paar MetaDaten für das PrimeFaces Framework.

    Gibts einen anderen Weg oder soll das so sein?

    Danke.

    [XML]<p:dataTable value='#{requestController.adminRequest}' var="item" first="#{requestController.first}" rows="#{requestController.ROW_COUNT}">
    <f:facet name="header">
    <h:eek:utputText value="anstehende Anforderungen im IT-SPS bestellen und dann bestätigen" />
    </f:facet>
    <p:column headerText="Zugriffsrecht bestätigen">
    <h:form>
    <h:selectBooleanCheckbox disabled="true" value="#{item.ack}" />&nbsp;&nbsp;
    <h:commandButton value="Anfrage bestätigen" actionListener="#{requestController.checkBoxListener()}" />
    </h:form>
    </p:column>
    <p:column>
    <f:facet name="header">
    <h:eek:utputText value="Personalnr" />
    </f:facet>
    <h:eek:utputText value="#{item.shareHasUsers.iterator().next().user.persnr}" />
    </p:column>
    <p:column>
    <f:facet name="header">
    <h:eek:utputText value="Vorname" />
    </f:facet>
    #{item.shareHasUsers.iterator().next().user.vorname}
    </p:column>
    <p:column>
    <f:facet name="header">
    <h:eek:utputText value="Nachname" />
    </f:facet>
    #{item.shareHasUsers.iterator().next().user.nachname}
    </p:column>
    <p:column>
    <f:facet name="header">
    <h:eek:utputText value="angefordertes Zugriffsrecht" />
    </f:facet>
    #{item.shareHasUsers.iterator().next().berechtigung.accessRight}
    </p:column>
    <p:column>
    <f:facet name="header">
    <h:eek:utputText value="Verzeichnis" />
    </f:facet>
    #{item.shareHasUsers.iterator().next().share.bezeichnung}
    </p:column>
    <f:facet name="footer">
    <h:form>
    <h:commandButton value="prev" action="#{requestController.prevPage()}" disabled="#{requestController.hasNoPrevPage}" />
    <h:commandButton value="next" action="#{requestController.nextPage()}" disabled="#{requestController.hasNoNextPage}" />
    </h:form>

    <h:eek:utputText value="#{requestController.first+1}-#{requestController.adminRequest.rowCount} von #{requestController.adminRequest.rowCount}" rendered="#{requestController.hasNoNextPage}" />
    <h:eek:utputText value="#{requestController.first+1}-#{requestController.first + requestController.ROW_COUNT} von #{requestController.adminRequest.rowCount}" rendered="#{requestController.hasNoNextPage == false}" />
    </f:facet>
    </p:dataTable>[/XML]
     
  2. Vielleicht hilft dir das Grundlagen Training weiter --> *Klick*
  3. Ah, Cool. Ein Hinweis auf einen kostenpflichtigen Java-Kurs... Ich denke ich sollte die Mitgliedschaft in diesem Forum dann doch mal beenden...