没有session.getTransaction方法不存在

时间:2014-01-17 19:15:36

标签: java hibernate

![在此输入图像描述] [1] SessionFactory sessionFactory = new Configuration()。configure()。buildSessionFactory();         会话会话= sessionFactory.openSession();         session.beginTransaction();         session.save(学生);         session.get         code error screenshot

我尝试调用此会话的getTransaction方法时出现此错误,以便我可以提交事务。我是否要纠正此问题

1 个答案:

答案 0 :(得分:1)

要提交事务,您需要Transaction返回的session.beginTransaction();对象。

按如下方式更改您的代码:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession(); 
Transaction tx = session.beginTransaction(); //org.hibernate.Transaction
session.save(student);
tx.commit();

<强>更新

最好使用正确的try-catch块:

public boolean saveStudent(Student student)
    {
    Session session=null;
    Transaction tx=null;
    SessionFactory sessionFactory = null;
        try 
    {
        sessionFactory = new Configuration().configure().buildSessionFactory();
        session = sessionFactory.openSession(); 
        tx = session.beginTransaction(); 
        session.save(student);
        tx.commit();
        return true;
        }
        catch (Exception e) 
    {
         if(tx!=null && tx.isActive())
         {
          tx.rollback();//rolebacks the currect active transaction
         }
        return false;
        }
     finally 
    {
         if(session!=null && session.isOpen())
         {
           session.close();
         }
         if(tx!=null)
         {
           tx=null;
         }
        }
      }