Anche se probabilmente una domanda banale, mi sono sempre chiesto questo.DAO/repository: valore restituito buona pratica dopo l'inserimento/aggiornamento
In genere, dopo l'inserimento nel db, sembra prassi comune restituire l'id dell'entità aziendale.
@Override
public Long createUser(UserEntity user) {
em.merge(user);
em.flush();
return user.getId();
}
Esiste un motivo convincente per restituire l'id invece del riferimento all'oggetto business stesso?
Analogamente, ho visto update
restituire void
, mentre potrebbe essere un id/utente.
Se dovessi scrivere un DAO/Repository per altri utenti, quale sarebbe il valore restituito consigliato (se presente) e perché?
l'unione lascia l'entità passata rimossa, copia lo stato in un'entità gestita e restituisce l'entità gestita. Restituire l'ID è inutile: il chiamante lo conosce già da quando lo ha passato nell'entità. Ciò di cui il chiamante ha bisogno è l'entità gestita creata o aggiornata. –
@JBNizet Grazie, ha senso. – Trace
Sì, l'attenzione è qui sul fatto che il comando di unione restituisce l'oggetto entità unita. Secondo me è la migliore pratica. È sufficiente restituire l'oggetto UserEntity restituito dal comando di unione. La ragione di ciò è che solitamente è buona norma non modificare un oggetto passato come parametro. Quindi probabilmente dovresti aspettarti che il metodo fusione non modifichi l'oggetto passato. E restituire sempre lo stesso oggetto non modificato (o parte di esso) che è stato passato al tuo metodo potrebbe non essere così mirato. – Frank