1

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

问题:MySQL用作数据库,所以我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());

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

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

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

任何建议将不胜感激......

4

2 回答 2

5

我犯了一个错误,那就是提交休眠事务...

更新的 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

我犯的错误是我没有在休眠更新查询中使用事务,我认为事务查询仅用于休眠插入。

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

于 2013-10-11T10:12:09.337 回答
1

您是否使该方法具有事务性?例如:如果您使用 springframework,则添加 @Transactional 注释

于 2013-10-11T09:53:37.407 回答