我是JSF + hibernate + Maven的初学者,我正在尝试在Maven下创建一个小应用程序CRUD。
我的问题是,当我尝试通过添加表单添加对象产品(实体)时,它会立即插入到数据库中,但不会直接出现在$\leq$
的数据表中。我应该等待一段时间,然后在服务器上运行应用程序,然后在dataTable中插入重新插入的新Product(实体)。我不知道究竟是什么问题?
我使用hibernate 5.2.12.Final和MySql连接器5.1.40和JSF 2.2.8 mojarra
hibernateUtil的源代码:
jsf
for AbstractModel:
public class HibernateUtil {
private static SessionFactory sessionFactory;
static
{
try
{
Configuration conf = new Configuration().configure();
sessionFactory = conf.buildSessionFactory();
}catch(Exception ex){
System.err.println("Initial sessionFactory creation failed" +
ex);
}
}
public static SessionFactory getSessionFactory()
{
return sessionFactory;
}
}
for Managed Bean:
public abstract class AbstractModel<T> {
protected final SessionFactory factory = HibernateUtil.getSessionFactory();
public void add(T p)
{
try{
if(!factory.getCurrentSession().getTransaction().isActive())
factory.getCurrentSession().getTransaction().begin();
factory.getCurrentSession().persist(p);
factory.getCurrentSession().getTransaction().commit();
}catch (RuntimeException re) {
factory.getCurrentSession().getTransaction().rollback();
throw re;
}
}