Hi Hazem, I have implemented as per your suggestion using a single PL. The PL is registered in facesConfig.xml and the hibernateconfig file has
<property name="current_session_context_class">thread</property> still I am getting "org.hibernate.LazyInitializationException: could not initialize proxy - no Session" error Any clues ? ========================================== ========================================= public class RestoreViewPhaseListener implements PhaseListener { public void beforePhase(PhaseEvent event) { SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); sessionFactory.getCurrentSession().beginTransaction(); } public void afterPhase(PhaseEvent event) { SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); try { sessionFactory.getCurrentSession().getTransaction().commit(); } catch (Throwable ex) { // very bad error here, occured... if (sessionFactory.getCurrentSession(). getTransaction().isActive()) { sessionFactory.getCurrentSession(). getTransaction().rollback(); } } } public PhaseId getPhaseId() { return PhaseId.INVOKE_APPLICATION; } } ========================= HibernateUtil.java ========================== public class HibernateUtil { private static final SessionFactory sessionFactory; static { try { // Create the SessionFactory from hibernate.cfg.xml sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } } Can you tell me if I am missing anything here? Thank you. Regards Ayub On Thu, Sep 11, 2008 at 9:45 PM, Hazem Saleh <[EMAIL PROTECTED]> wrote: > Hi Ayub, > > I tried this code before and it worked fine. > You should check your hibernate configuration, and make sure that: > 1. You are registered your PLs. > 2. <property name="current_session_context_class">thread</property>. > > Another better idea, I got later, you can use only one PL on the > (INVOKE_APPLICATION) phase to implement the OSPVP. > > Thank you. > > > On Thu, Sep 11, 2008 at 11:22 AM, Ayub Khan <[EMAIL PROTECTED]> wrote: > >> Hi, >> I have impleted the phaseListener using the idea presented on >> http://www.jroller.com/HazemBlog/entry/implementing_hibernate_open_session_per >> >> I am getting "org.hibernate.HibernateException: createQuery is not valid >> without active transaction" error message. >> >> Below is the code of phase listeners: >> >> public class RestoreViewPhaseListener implements PhaseListener { >> >> public void afterPhase(PhaseEvent event) { >> } >> >> public void beforePhase(PhaseEvent event) { >> SessionFactory sessionFactory = >> >> HibernateUtil.getSessionFactory(); >> sessionFactory.getCurrentSession().beginTransaction(); >> >> >> } >> >> public PhaseId getPhaseId() { >> return PhaseId.RESTORE_VIEW; >> } >> >> } >> >> Please let me where to open and close session and transaction. >> >> Thanks >> Ayub >> >> >> >> -- >> -- "Two roads diverged in a wood >> And I took the one less traveled by >> And that has made all the difference. >> >> Robert Frost....." >> > > > > -- > Hazem Ahmed Saleh Ahmed > > Web blog: http://www.jroller.com/page/HazemBlog > > [Web 2.0] GMaps Integration with JSF + Apache Tomahawk + JBoss a4j: > http://code.google.com/p/gmaps4jsf/ > -- -- "Two roads diverged in a wood And I took the one less traveled by And that has made all the difference. Robert Frost....."