Jeg vil tror jeg mangler og lave et SET i mine mapninger, men det er her jeg går lidt død.. Hvordan skal de SET se ud? og hvordan skal mit Criteria se ud for at lave selecten
Kort fortalt, så har du ikke lyst til at mappe id-numrene på den primitive måde som du gør i SQL. Hvis et tal (som her SAGNO) refererer til noget i en anden tabel, så har du lyst til at have begge dele som hver sin klasse hvor denne relation er mapper imellem. Dvs at du i stedet for at have Person.getSAGNO() af typen long hellere skal lave Person.getSAG() med typen Sag. Først dit Criteria. Det kunne se sådan her ud:
Criteria c = session.createCriteria(Person.class); c.add(Restrictions.eq("cpr","123456-1234"); Person p = (Person) c.uniqueResult(); Set<Sag> set = p.getSager(); //osv...
Nu skal vi lave mappingen. På Person har du så lavet en getSager() og på Sag har du en getPerson(). getPerson() kan laves på sag med følgende mapping: <many-to-one name="person" class="Person" column="personId"/>
Settet af sager laves ved at tilføje følgende til Person-mapningen: <set name="sager" table="Sag"> <key column="personId" /> <one-to-many class="Person"> </set> Altså konstruerer den et set som består af alle sager som har personId=id på den person du har. Du mapper kort sagt aldrig ID-værdierne som du bruger til at refere, men lade hibernate klare det grove arbejde.
Ja, det er en typo i eksemplet... class skal selvfølgelig være "sag"...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.