Non riesco a eseguire il backup con alcun tipo di documentazione professionale, ma qui è la mia opinione in merito. Penso che tu abbia due strade possibili da seguire.
DTOs solo
Il primo si basa su fagioli modello da DTOS strisciamento, utilizzati solo per la persistenza dei dati, che svolgono alcuna logica. Qui puoi lasciare i tuoi campi POJO non inizializzati, poiché ciò sarà fatto automaticamente da Hibernate prima di recuperare oggetto persistente tramite Session. Sono sicuro che lo sai già, che Hibernate avvolgerà silenziosamente tutte le raccolte nei propri wrapper, cosa necessaria per mezzo del meccanismo di persistenza interno.
classi modello appropriato
Il secondo approccio richiede POJOs un po 'oltre. In questo scenario è possibile eseguire alcune logiche all'interno dei metodi getter e setter. Questo non è uno scenario insolito, dopotutto è perfettamente accettabile da MVC e molto spesso ci si trova a dover aggiungere del codice. Per esempio - la registrazione delle informazioni durante la chiamata metodo setter, esempio qui sotto:
public void setItems(List<Object> items){
LOGGER.info("Setting '{}' new items", items.size());
this.items = items;
}
In tal caso, si potrebbe cadde in difficoltà, dal momento che per quanto ne so la raccolta non verrà inizializzato da Hibernate a questo punto. In tal caso, l'inizializzazione esplicita sarebbe migliore.
Commento finale: non sono l'esperto di Hibernate, inoltre non so se qualcosa è cambiato in 4.x, ma so che ho subito questo problema ad un certo punto.
fonte
2012-01-11 14:17:52
Per "raccolta di istanze" si intende "proprietà di raccolta persistente"? –
@MikePartridge si, questo è quello che intendevo. – Danny