dovrei avercela fatta:
codice:
public class LavoriHelper {

    Session session = null;
    SessionFactory factory = null;

    public LavoriHelper() {
        factory = HibernateUtil.getSessionFactory();
    }

    private void openSession() {
        if (session == null || !session.isOpen()) {
            session = factory.openSession();
        } else {
            session = factory.getCurrentSession();
        }
    }

    public void addLavoro(LavoriSezioni lavoriSezioni, String titolo, String testo, Date data, Integer ordine) {
        openSession();
        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() {
        openSession();
        Transaction tx = session.beginTransaction();
        Query q = session.createQuery("from Lavori");
        List<LavoriSezioni> list = (List<LavoriSezioni>) q.list();
        return list;
    }
}
poi nel bean:
codice:
    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("");
//        fc.getExternalContext().redirect("");
        recreateModel();
    }

    public void recreateModel() {
        lavori = null;
    }
così pare funzionare.