Hibernate Exceptions

  • Hallo!

    Ich habe ein (kleines) Problemchen. Und zwar bekomme ich Exceptions von Hibernate - Could not find a getter for recht in class main.java.org.hibernate.DB.User

    Folgendes Szenario:

    Ein User hat genau ein Recht. Ein Recht ist mehreren Usern zugeteilt.
    Das ist so in der Datenbank: (HSQL)



    dann habe ich die xml files für hibernate erstellt nach tutorial ( link1 und link2

    User.hbm.xml


    Rechte.hbm.xml


    Dann die Hibernate Sessions:

    und zu guter letzt meine Testimplementierungen.


    Und meine testimplementierung für User aus der Datenbank auslesen:

    Exception:


    meine Klasse User.java:

    meine Rechte.java


    Ich weiß ned woher die :cuss: das "recht" herhat :(
    Vielleicht kann jemand helfen?

    edit: zur übersicht hab ich noch alle files, die in frage kommen, hier:

    :cheer: manamana :dance: düdüdüdüdü :trampolin: :cheer:

    3 Mal editiert, zuletzt von Venefica (6. Januar 2010 um 02:22)

  • von der klasse User die setRechte aufrufen und dort rechte (mit der bezeichnung "Admin" und ID (1) übergeben.

    Wie auch immer, du hast den Methodennamen mittlerweile von "setRecht" auf "setRechte" geändert. Falls es "setRecht" aber nicht "getRecht" gegeben hat, könnte das die PropertyNotFoundException erklären (vage Vermutung von mir im Halbschlaf).

  • Danke, es war allerdings nur ein kopierfehler von mir, da ich versucht habe, in meinem genialen irrsinn, die rechte auf recht zu setzen, damit er dann ruhe gibt - was er nicht getan hat.

    ausführbar war der code, es gab keine compilierfehler, nur diesen fehler beim einfügen / abfragen der daten aus der datenbank.

    Es fehlen weder klammern noch sind methodennamen falsch geschrieben - danke jedenfalls für den versuch :)

    :cheer: manamana :dance: düdüdüdüdü :trampolin: :cheer:

  • Der Fehler würde heißen, dass es ein Mapping in Tabelle User auf Property Recht gibt und dieses nicht existiert.

    Ich hab das Projekt in Eclipse nachgebaut, krieg hier aber weder bei TestRecht oder bei TestUser einen Fehler. Ev. hast du irgendwas nicht neu kompiliert?

    Das ganze Projekt incl. aller Libs und Sourcen gibts hier (ich hab ne mysql statt der hsql verwendet, sollte egal sein):
    http://t-portal.at/stuff/hibernate_test.zip

    Falls das mehr als ein Testprojekt werden soll ein paar Anmerkungen:
    - Packagenamen sollten immer kleingeschrieben sein, die Hierarchie ist seltsam
    - die find und getAll Methoden sollten genauso eine generische Liste vom richtigen Typ zurückliefern. CreateQuery(..).list() liefert natürlich nur eine Liste, die kannst du ja casten
    - Die UserSet könnte auch ein Set<User> sein
    - Datenbankkonventionen würd ich mir auch überlegen (z.B. alle spalten groß/klein/unterstrich getrennt, jeder PrimaryKey heißt id, der ForeignKey tabelle_id und rechteBEZ würde bei mir einfach bezeichnung heißen, ist ja eh in Tabelle Recht)
    - man kann statt den Mappings+Classfile auch mit Classfile+Annotations arbeiten, bleibt jedem selbst überlassen

    mfg T.

  • ähm ... es funktioniert, danke!

    ich versteh nur nicht wieso es geht .. das sind doch fast 1:1 meine files und ich habe immer kompiliert ..
    naja, es funktioniert jetzt gerade einmal und ich versuche es in das großprojekt einzubinden und bete nebenbei

    Vielen Dank auch für deine anderen Anmerkungen - ich werde sie versuchen auch meinen kollegen beizubringen und diese umzusetzen :)

    :cheer: manamana :dance: düdüdüdüdü :trampolin: :cheer:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!