[pugMI] Dubbi su architettura / data mapper / repository ecc... HELP! :)

Matteo Vaccari vaccari a pobox.com
Ven 17 Lug 2015 03:37:38 PDT


>
>
>> 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.
>>
>>
> 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.
> 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
>
>

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();

Cioe' un buon trucco e' ridurre (di molto) la dimensione dei tuoi aggregati.

Matteo
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://ml.grusp.org/pipermail/milano-grusp.org/attachments/20150717/d5e896f0/attachment.htm>


Maggiori informazioni sulla lista Milano