Sono nuovo di Hibernate quindi la mia domanda potrebbe essere vista come molto semplice, inoltre cercherò di non essere troppo generico (come mi è sempre stato detto per questo), anche se come per tutte le questioni architettoniche è difficile da evitare ... non so mai dove porre queste domande.
Ho configurato una webapp usando Spring + Hibernate. La mia architettura utilizza una serie di controller che fanno uso di servizi che in definitiva chiamano i metodi DAO per ottenere i miei oggetti di dominio.
Ho anche un GenericDAO che implementa tutti i metodi di accesso ai dati di base (findAll, findById, save, delete, update ...) che estendo per il mio Dao concreto, quindi devo solo implementare metodi di accesso ai dati specifici.
Quindi una richiesta per visualizzare tutti gli utenti avrà questo flusso: il controller appropriato viene chiamato attraverso il mapping delle richieste, che alimenta la vista con il risultato chiamando userService.getAllUsers()
che allo stesso tempo effettua una chiamata a userDao.findAll()
.
Questo è tutto bello e penso che lo sto facendo abbastanza bene.
La mia domanda riguarda le relazioni tra oggetti di dominio, quindi diciamo che gli utenti hanno account e per una vista voglio mostrare i dettagli dell'utente più il suo elenco di account.
Non ho mai scoperto quale sia il modo migliore per raccogliere l'elenco degli oggetti dei conti. Devo contrassegnare la relazione come Eager? Devo effettuare una chiamata in questo modo:
user.accountList = accountService.findAccountsByUser(userId);
se è così allora qual è il punto di specificare la relazione in primo luogo? O forse mi manca qualche altro modo qui?
Cosa succede con le relazioni da molte a molte? Sono obbligato a creare un oggetto dominio chiamato UserAccount (supponendo che un account possa essere associato a più utenti) che mappa le relazioni tra i due?