Sto lavorando su un'architettura Hibernate/JPA/Spring/Zk e moltiplico le domande in questi giorni perché devo imparare un sacco di framework.OpenSessionInView vs PersistentContext (Extended)
Ho una domanda che mi lascia perplesso per diversi giorni.
Ho sentito parlare del "pattern" OpenSessionInView per mantenere attiva una transazione Hibernate per effettuare il caricamento lazy. Molti dicono anche che il modello non è molto pulito.
E, dall'altro, si dice che PersistentContext esteso non è thread-safe, e quindi non è adatto per mantenere in vita l'entityManager.
Quindi, qual è la vera soluzione a questi problemi? Suppongo che questi problemi nascano dall'introduzione di ajax che consente maggiori possibilità, specialmente con il caricamento lazy, per caricare alcune raccolte pesanti quando necessario.
Per il momento, ho provato @PersistenceContext in modalità estesa. Funziona ... Ho dovuto impostarlo per i miei test JUnit, e funziona anche nella mia applicazione web con caricamento lazy senza più configurazioni.
È che l'evoluzione del framework (Spring, JPA 2.0) significa che ora è più semplice e più "pulito" funzionare con PersistentContext?
Se questo non è il caso, dovremmo usare OpenSessionInViewFilter da Spring e sostituire PersistentContext in modalità transazionale?
Grazie.