hibernate更新查询中的值未更新

时间:2013-10-11 09:42:27

标签: java hibernate hql

我正在使用JSF应用程序,我正在使用Hibernate作为ORM映射工具。

问题: 我使用MySQL作为数据库,所以我通过hibernate将数据添加到Mysql

现在我正在尝试从bean类更新数据库值

当我尝试更新它时,查询将成功执行,但值更新值将不会添加到数据库

我的Bean类代码:

 Session session=HibernateUtil.getSessionFactory().openSession();
 Query hQuery=session.createQuery("update Record set status='Present' where refId=100");
 System.out.println("Result : "+hQuery.executeUpdate());

上面的代码是从表“record”更新数据库值,它在输出中没有显示错误,但数据库中的值没有更新。

 Hibernate : update sample.record set Status='Present' where RefId=100
 Result    : 9

在控制台中显示的上述结果中,showSql

任何建议都会非常感激......

2 个答案:

答案 0 :(得分:4)

我在提交hibernate事务 ...

中犯了一个错误

更新了Bean类

      Transaction tx=null;
      Session hSession=HibernateUtil.getSessionFactory().openSession();
      Query hQuery=hSession.createQuery("update Leaverecord set status='HR' where refId="+lrb.getRefId());
      System.out.println("Result : "+hQuery.executeUpdate());
      tx=hSession.beginTransaction();
      tx.commit();
        hSession.close();

<强>输出

Hibernate: update sample.record set Status='Present' where RefId=100
Result : 9

我犯了错误,我没有在hibernate Update查询中使用该事务,我认为只有Hibernate插入的事务查询。

现在工作正常......

答案 1 :(得分:0)

您是否将该方法设为事务性的?例如:如果使用springframework

,则添加@Transactional注释