2014-01-17 6 views
0

! [Введите описание изображения здесь] [1] SessionFactory sessionFactory = new Конфигурация(). Configure(). BuildSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransaction(); session.save (учащийся); session.get code error screenshotno session.getTransaction метод отсутствует

Я получаю эту ошибку, когда я пытаюсь вызвать этот метод getTransaction сеанса, так что я могу совершить transaction.how я исправить это

ответ

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(); 

Update

Это хорошая практика, чтобы использовать надлежащий 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; 
     } 
     } 
     } 
+0

вызова 'buildSessionFactory' при каждом вызове также не Хорошая практика. Вы должны создать еще один класс, пусть скажем, имя 'HibernateHelper', откуда вы получите' session', вызывая метод 'Hibern ateHelper.getsession() ', и этот' HibernateHelper' имеет код, позволяющий сказать объединение пулов, создание фабрики сеансов и т. д. – Amogh

+0

Большое спасибо! Это помогло моей проблеме – user1654352

Смежные вопросы