Factory, Repository

Generic1

Top Contributor
Hallo,

ich hätte eine Frage zu den Factories und den Repositories, Factories sind ja zuständig für die Erzuegung von aufwendigen Objekten, Repositories sind für die Speicherung von Objekten z.B. in die DB und zum holden von Objekten/Daten aus der DB zuständig.

Mein Problem ist nun folgendes, ich habe eine 1:n Beziehung zwischen einem Participant und einem, Club -> ein Club kann zu mehreren Participants gehören aber ein Participant kann nur einem Club zugehörig sein.

Ich möchte jetzt das ganze in eine Factory aufteilen und in ein Repository, die Factory sollte mir den Participant und den Club erstellen, und die Repository sollte dann den Participant und den Club in der DB speichern.
Das Problem ist jetzt, dass ich in der Factory schon saveClub aufrufen muss, damit ich den Club zu einem Participant hinzufügen kann, ansonsten bekomme ich die Fehlermeldung ganz unten.
Meine Frage wäre jetzt, wie kann ich diese Trennung zwischen Factory und Repository sinnvoll machen. Gibt es eine Möglichkeit, dass ich mir das saveClub in der Factory erspare und das erst im Repository mache?

Besten Dank,
lg


Java:
/* Participant erstellen */
    final Participant participant = new Participant();
    participant.setFirstname("Hans");
    participant.setSurname("Huber");
  
/* Club erstellen */
    final Club club = new Club();
    club.setClubname("Berlin");
    dao.saveClub(club);  // hier muss ich den Club zuerst speichern, damit ich diesen dann dem
//Participant hinzufügen kann, wenn ich saveClub(club) nicht mache bekomme ich die Fehlermeldung unten
    participant.setClub(club);

Fehlermeldung
Code:
object references an unsaved transient instance - save the transient instance before flushing: 
at.eventtiming.dao.hibernate.domain.Club; nested exception is 
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the 
transient instance before flushing: at.eventtiming.dao.hibernate.domain.Club
 

Generic1

Top Contributor
Oder vielleicht anders gefragt, darf/kann eine Factory eine Instanz zu einem Repository halten (aus Domain Driven Desing- Sicht)?
Wenn ja würde das mein Problem lösen, da ich dann einfach die Objekte in der Factory erzeuge und dann dem Repository übergebe um diese Objekte zu speichern.
 

Ähnliche Java Themen

Neue Themen


Oben