【问题标题】:How to use update query in hibernate如何在休眠中使用更新查询
【发布时间】:2013-10-24 14:58:01
【问题描述】:

嗨,我对休眠非常陌生,谁能帮我解决如何使用更新查询来更新表的记录...我在 dao 类中使用这样的方法

  Session ses = HibernateUtil.getSessionFactory().openSession();
        Transaction tx = ses.beginTransaction();
        Query q = ses.createQuery("from RegisterPojo  where email =:email");
        q.setParameter("email", bean.getEmail());
        RegisterPojo pojo = (RegisterPojo) q.list().get(0);
        pojo.setUname(bean.getUname());
        ses.update(pojo);
        tx.commit();
        ses.flush();
        ses.close();

您好,我编辑了我的代码,出现异常,无法执行 JDBC 批量更新

提前致谢

【问题讨论】:

  • 嗨,谁能帮帮我!

标签: java hibernate


【解决方案1】:

你需要在休眠会话中调用update

观察下面的例子

Query q = session.createQuery("from RegisterPojo where email =:email");
q.setParameter("email", "Fred@Example.com");
RegisterPojo  pojo= (RegisterPojo)q.list().get(0);

pojo.setName("Fred");
session.update(pojo);

【讨论】:

  • 因为上述语法用于从查询中获取列表,如select * from employees
  • 这里看不懂表名是什么
  • 我已经修复了我的答案
  • 现在查询执行正常,但表中的数据没有更新
  • 在这种情况下,您可能需要一个需要提交的事务,如tx = session.beginTransaction();
猜你喜欢
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
  • 2013-10-19
  • 1970-01-01
  • 2016-10-28
相关资源
最近更新 更多