Ich arbeite an einer API für den Zugriff auf Daten in einem System gespeichert. Das System enthält Dinge wie Personen, Termine und Verfahren, die diesen Terminen zugeordnet sind. Meine Bewerbung wird ausschließlich schreibgeschützt sein.POJO mit anderen POJO Referenzen
Ich benutze Spring w/RowMapper, um Objekte wie "Person
", "Appointment
" und "Procedure
" zu bauen. Ich habe ein DAO für jedes Element. (zB: PersonDAO.getById()
, PersonDAO.getByName()
, ..).
Das Problem kommt in Appointment
hat einen Verweis auf ein Person
Objekt. Es wäre schön, in dem Person
Objekt einen Verweis auf die Person
Termine zu haben, aber wenn ich beginne, diese zu laden, wird es eine zirkuläre Referenz.
Also, ich denke, meine Frage ist der richtige Weg, damit umzugehen, nur die Referenzen (Ids) in den POJOs setzen und dann die Business-Schicht (?) Nur die richtigen Anrufe machen, um die Informationen zu bekommen? Oder ist es in Ordnung, irgendwie einen Verweis auf das DAO im POJO zu übergeben, damit ich die Objektobjekte beim Referenzieren träge laden kann? Aber wie gehst du dann mit der Zirkelreferenz um? Wenn ich eine Person
und ich träge alle ihre Termine laden, diese Termine haben auch eine Person mit ihnen verbunden. Wenn ich dieses Person
lade, könnte es möglicherweise unterschiedliche Informationen von der Person
haben, die ich Termine für lade.
Person
(Objekt x) träge laden -> Termine könnten Person
(Objekt x ') laden.
Seit Person
könnte sich zu der Zeit geändert haben, ich ging, um ihre Termine faul laden. Ich brauche wirklich das Person
Objekt in Appointment
, um auf dasselbe Person
Objekt zu verweisen.
Ich bin alle davon gefangen. Ich weiß, ich könnte einfach "es zum Laufen bringen", aber ich möchte versuchen, eine gute Lösung zu finden. Ich habe darüber nachgedacht, Hibernate zu verwenden, dachte aber, dass es wirklich nur Overkill war. Vielleicht ist es nicht.
Wie das Wort "knifflig". – BalusC
Sie können es jederzeit gerne verwenden :) – skaffman
Danke. Ich werde es mir ansehen. Ich muss nur die Zeit verbringen, um in den Winterschlaf zu gehen. –