<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><div><br></div></span><div>I dati che recuperi per mostrarli in una pagina HTML non devono necessariamente essere gli stessi che recuperi per effettuare una modifica.  Se per esempio vuoi aggiungere un alias al batterista degli Oasis, nel punto dove ricevi quel comando e' sufficiente recuperare solo lo specifico artista, non tutto il gruppo.  In alcuni casi ti potrebbe convenire avere dei metodi ad hoc nell'ArtistRepository tipo addAlias().  Si' non e' OO ma in alcuni casi andare a perlustrare tutto l'oggetto artista e vedere che cosa devo salvare e che cosa no puo' essere complicato.</div><span><div><br></div></span></div></div></div></blockquote><div><br></div></span><div>Qui mi sono spiegato male, sorry. Il batterista degli Oasis per me è solo un artista come un altro. Ok ha una relazione con gli Oasis (ma quella relazione è espressa solo come id in un sotto oggetto relationship). Non avrò mai un grafo di artista contenente tutti i sotto oggetti artista collegati ad esso. Quindi se volessi operare su di lui opererei lavorando direttamente su quell'artista. Il problema è che il mio metodo persist al momento va a fare il salvataggio di tutto l'oggetto artista così come gli viene passato mappandolo su tutte le tabelle. Quindi se per errore o scelta non ho recuperato i meta e questi non sono presenti all'atto del salvataggio questi andranno persi perchè il comando ritiene di doverli cancellare. Mi sembra di capire che tu consigli di avere metodi specifici tipo persistAlias persistMeta ecc.</div><div>Forse in questo caso la mia ipotesi del withBaseData withMeta potrebbe essere applicata anche al metodo persist in modo da istruire il repository di salvare solo quelle parti. Non so sono confuso :DD</div><span class=""><div> </div></span></div></div></div></blockquote><div><br></div><div>Non so se mi piacerebbe avere persistMeta, persistAlias etc.  Esplorerei la possibilita' di avere "Alias" o "AliasList" come oggetto di dominio.  Se aggiungo un alias a un'alias list, scongelo la alias list, eseguo il metodo aliasList.add(new Alias(...)) e poi aliasList.persist();</div><div><br></div><div>Cioe' un buon trucco e' ridurre (di molto) la dimensione dei tuoi aggregati.</div><div><br></div><div>Matteo</div></div></div></div>