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

È stato utile?

Soluzione

Infine, ho risolto il mio problema.

destra

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top