根据我对休眠的理解(请确认)
1- session.close()如果你得到它,你必须这样做getSessionFactory().openSession().
2-没有必要,session.close()如果你得到它getSessionFactory().getCurrentSession().它在commit()后自动关闭.
3- @ 2使用时getSessionFactory().getCurrentSession(),我们必须在活动事务中执行所有数据库活动,以便最后可以提交().
4- Hibernate将所有保存,更新和删除操作置入,并仅在执行flush()操作或提交事务或关闭发生这些操作的会话后将它们提交到数据库服务器.(根据javadoc)
从以上几点来看,如果我考虑1和4,那么下面的代码应该有效:
Session session = HibernateUtil.getSessionFactory().openSession();
AccountDetails ac = new AccountDetails();
//perform set operations
session.save(ac);
session.close();
System.out.println("new account stored.");
Run Code Online (Sandbox Code Playgroud)
但它不起作用,即它运行平稳但不反映(存储)在数据库中.为什么会这样?当我在事务中编写代码并提交时,它就会被存储.
我想我错过了一件基本的事情.请澄清.