Si mi serve anche in scrittura. Per esempio nel momento in cui viene effettuato l'ordine, creo l'istanza di Ordine (contenente ArrayList di Articoli) e passo tutto al relativo metodo della classe OrdineDaoImplementation che si occupa di creare la stringa di query in base ai dati forniti dall'istanza Ordine, e di effettuare l'execute della stessa.
Considera che ancora non uso JPA e non ho capito in che modo facilita la vita, quindi per il momento scrivo tutte le query manualmente.
Ora la maggior differenza tra l'usare o meno l'extends la riscontro proprio nel momento in cui vado a prelevare i dati da scrivere nel DB all'interno della OrdineDaoImplementation.
Se non estendo la classe allora mi ritroverei a fare una cosa del genere
Codice PHP:
public class effettuaOrdine(Ordine o)
{
...
//per prelevare l'id di un articolo dall'ArrayList dovrei fare:
o.getListaArticoli.get(index).getArticoloBean().getId();
o.getListaArticoli.get(index).getArticoloBean().getNome();
o.getListaArticoli.get(index).getArticoloBean().getPrezzo();
...
}
considerando che:
Ordine contiene l'ArrayList di ArticoloOrdinato (listaArticoli)
ArticoloOrdinato contiene a sua volta il riferimento ad un'istanza del bean Articolo (articoloBean)
applicando l'ereditarietà tramite l'extends, invece avrei valori meno "annidati" (risparmiando un passaggio)
Codice PHP:
public class effettuaOrdine(Ordine o)
{
...
//per prelevare l'id di un articolo dall'ArrayList dovrei fare:
o.getListaArticoli.get(index).getId(); //come puoi vedere è scomparso getArticoloBean()
o.getListaArticoli.get(index).getNome();
o.getListaArticoli.get(index).getPrezzo();
...
}