/ / Domanda sulla progettazione della classe POJO Hibernate: java, hibernate, orm

Domanda sulla progettazione della classe POJO Hibernate: java, hibernate, orm

Sto imparando ad ibernare e ho una domanda riguardante il design della mia classe POJO ho una destinazione di classe con poche proprietà come

private Set<AirTransport> airTransport;
private Set<RoadTransport> roadTransport;
private Set<TrainTransport> trainTransport;

poiché questi sono rifrazione di qualche altra entitàclassi, La mia domanda è quando cercherò la mia classe di destinazione non voglio che questi refrence vengano caricati nella memoria in modo che possano recuperarli in seguito quando l'utente fa clic su uno qualsiasi dei link come (airtransport). essere raggiunto nel migliore dei modi Sono in attesa di Hibernate quindi per favore correggimi dove mai sbaglio.

Thnaks in anticipo

risposte:

2 per risposta № 1

Questo è chiamato "caricamento pigro". Per impostazione predefinita, tutte le raccolte in modalità di sospensione (e JPA) vengono caricate pigramente, ovvero non vengono caricate finché non vi si accede. Quindi, per impostazione predefinita, il tuo oggetto non recupera tutti i dati.

Ma il carico pigro ha le sue complicazioni. Se si tenta di accedere a una raccolta quando la sessione di sospensione è stata chiusa, viene generata un'eccezione. E come sembra che avrai bisogno delle collezioni dopo che l'utente ha fatto qualche azione (fa clic su un pulsante).

In questo caso hai due opzioni:

  • quando l'utente fa clic sul pulsante, carica nuovamente l'entità e inizializza la raccolta desiderata. Mediante Hibernate.initialize(..) o iterandolo nella vista. Nota che le sessioni sono normalmente chiuse prima del rendering della vista, quindi potresti aver bisogno OpenSessionInViewFilter

  • non usare affatto le collezioni, hanno comunque un comportamento limitato HQL o l'API dei criteri per recuperare i risultati. Questo ti permette di avere il paging e non stai pensando a problemi pigri


0 per risposta № 2

Questo è chiamato Lazy Fetch nel mondo ORM. Leggi il tutorial Qui. Si potrebbe anche voler leggere sul modello correlato: Apri sessione in visualizzazione