Come mantenere un aperto Hibernate Session fino a quando la pagina viene visualizzata
-
25-09-2019 - |
Domanda
Sto avendo il seguente problema:
- Sto usando Oracle ADF per la vista e controllore della mia app.
- Con OpenSessionInViewFilter, mi intercetta la richiesta e aprire sessione di un Hibernate, ed è chiusa non appena il metodo finiture del bean.
Che cosa ho bisogno è quello di mantenere la sessione aperta fino a quando la pagina viene visualizzata, perché nella mia JSP y utilizzare gli attributi pigri del carico oggetto che dal DB.
Ad esempio:
Quando entro index.jspx il IndexBean # main () viene eseguita:
public class IndexBean{
private DBObject myDBObject;
public String main(){
this.myDBObject = this.myDAO.loadObjectFromDB();
return null;
}
}
in index.jspx ho:
...
<af:inputText value="#{myDBObject.lazyAttribute}" />
...
Mi piacerebbe che la sessione di Hibernate mantiene aperta fino al AF:. InputText viene elaborato
È possibile? Come?
Grazie in anticipo
Soluzione
Infine, ho risolto il mio problema.
destraL'OpenSessionInViewFilter stava funzionando.
C'è stato un problema con il componente <af:table>
stavo usando ... La cosa strana era che il <af:table>
crea una nuova richiesta. Questa nuova richiesta stava chiudendo e la creazione di un nuovo Hibernate Session.
Altri suggerimenti
Io suggerirei di mantenere la vostra vista disaccoppiato dal modello ed eliminare il lazy loading. Dare la pagina di tutti i dati di cui ha bisogno prima che venga eseguito il rendering. Se il recupero dei dati aggiuntivi è davvero un grande calo di prestazioni, quindi prendere in considerazione ri-progettare l'applicazione per presente che i dati separatamente.