ciao!
io ho questo bean:
codice:
@ManagedBean(name = "lb")
@SessionScoped
public class LavoriBean {

    private String titolo;
    private String testo;
    private DataModel lavori;
    private LavoriHelper helper;

    public LavoriBean() {
        helper = new LavoriHelper();
    }

    public String getTitolo() {
        return titolo;
    }

    public void setTitolo(String titolo) {
        this.titolo = titolo;
    }

    public String getTesto() {
        return testo;
    }

    public void setTesto(String testo) {
        this.testo = testo;
    }

    public DataModel getLavori() {
        if (lavori == null) {
            lavori = new ListDataModel(helper.getLavori());
        }
        return lavori;
    }

    public void addLavoro() {
        helper.addLavoro(null, titolo, testo, new Date(), 0);
        FacesMessage fMsg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Lavoro inserito", null);
        FacesContext fc = FacesContext.getCurrentInstance();
        fc.addMessage(null, fMsg);
        UIViewRoot uiViewRoot = fc.getViewRoot();
        HtmlInputText txtTitolo = (HtmlInputText) uiViewRoot.findComponent("frm_add_lavoro:titolo");
        txtTitolo.setValue("");
        HtmlInputTextarea txtTesto = (HtmlInputTextarea) uiViewRoot.findComponent("frm_add_lavoro:testo");
        txtTesto.setValue("");
    }

    public void recreateModel() {
        lavori = null;
    }
}
da qui eseguo una query per pendere i dati, e ho anche un metodo per inserire i dati nel db.

vado in home page e prendo i dati che stanno nel db, e fin qui tutto ok.
poi ho un form che richiama addLavoro() che aggiunge i dati al db, e funziona.
solo che se rivado in home l'ultimo record non c'è e devo rilanciare il progrmma.
come se usasse ancora la sessione vecchia.
questa la classe helper:
codice:
public class LavoriHelper {

    Session session = null;

    public LavoriHelper() {
        this.session = HibernateUtil.getSessionFactory().getCurrentSession();
    }

    public void addLavoro(LavoriSezioni lavoriSezioni, String titolo, String testo, Date data, Integer ordine) {
        Transaction tx = session.beginTransaction();
        Integer lavoroId = null;
        Lavori l = new Lavori(lavoriSezioni, titolo, testo, data, ordine);
        lavoroId = (Integer) session.save(l);
        tx.commit();
    }

    public List<LavoriSezioni> getLavori() {
        Transaction tx = session.beginTransaction();
        Query q = session.createQuery("from Lavori");
        List<LavoriSezioni> list = (List<LavoriSezioni>) q.list();
        return list;
    }
}
e questa la classe HibernateUtil
codice:
public class HibernateUtil {

    private static final SessionFactory sessionFactory;

    static {
        try {
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}
qualcuno ha qualche suggerimento??