2016-02-10 7 views
0
Session session = null; 
     try { 
      session = HibernateUtil.getSessionFactory().getCurrentSession(); 
      if(session != null) 
      { 

       String updateSql = "Update school Set name= :name Where id= :id"; 
        Query query = session.createQuery(updateSql); 
        query.setParameter("name ", name); 
        query.setParameter("id", id); 
        int updateRows= query.executeUpdate(); 


      } 
     } 
     catch (HibernateException e) 
     { 
      log.error("Error in updating name i "); 
     }  

здесь нет обновленных строк 1, но обновление не выполняется в базе данных. транзакция также совершена.Спящий режим в java

Session session = null; 
     try { 
      session = HibernateUtil.getSessionFactory().getCurrentSession(); 
      if(session != null) 
      { 

        School school = getSchool(id); 
        school.name (name); 
        session.update(school); 


      } 
     } 
     catch (HibernateException e) 
     { 
      log.error("Error in updating name i "); 
     } 

Вместо этого этот фрагмент передается в том же месте.

Первый запрос не передает данные в базе данных, тогда как второй запрос работает. Я хочу знать причину за этим

+1

В вашем вопросе отсутствует вопрос. – Manu

+0

Первый запрос не передает данные в базе данных, тогда как второй запрос работает. Я хочу знать причину этого –

+0

Вы выполняете только один запрос с предоставленным кодом. Вам не хватает кода. Можете ли вы попытаться опубликовать что-то более полное? – Takarii

ответ

0

Я, если правильно понял, у вас возникла проблема совершения транзакции в БД.

вам нужно сделать это следующим образом:

public void UpdateSchool (School school){ 
    Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
    session.beginTransaction(); 
    session.update(school); 
    session.getTransaction().commit(); 
} 

Кроме того, я бы порекомендовал вам с помощью JPA. В этом случае вам вообще не нужно будет думать о сеансах, он автоматически откроет, закроет и зафиксирует сеанс по вашему желанию.

+0

есть еще несколько наборов кода до и после этого кода, которые совершают ... только эта часть транзакции не совершена. И трюк - это не запрос, но когда я делаю то же самое, используя объект, который он совершает. и я не хочу использовать объект, поскольку он создает один дополнительный sql-оператор, который является накладным –

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