使用Criteriain 时可以执行更新Hibernate吗?例如:
Criteria
Hibernate
Session session = getSession(); Criteria crit = session.createCriteria(User.class); crit.add(Restrictions.eq("token", sessionToken)); User user= new User(); Transaction tx = session.getTransaction(); try { tx.begin(); session.updateWithCriteria(user, crit); //my imaginary function tx.commit(); } catch (Exception e) { e.printStackTrace(); tx.rollback(); } session.close();
有一个非常强大的功能,称为:
US/html/ch15.html#batch-direct)
来自doc的小引用:
…但是,Hibernate提供了通过Hibernate查询语言执行批量SQL样式DML语句执行的方法…
因此,尽管这不是关于 criteria -我们仍然可以使用我们的域模型进行查询,因为它与 HQL 有关。这是显示功能的代码段:
criteria
Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); String hqlUpdate = "update Customer c set c.name = :newName where c.name = :oldName"; // or String hqlUpdate = "update Customer set name = :newName where name = :oldName"; int updatedEntities = s.createQuery( hqlUpdate ) .setString( "newName", newName ) .setString( "oldName", oldName ) .executeUpdate(); tx.commit(); session.close();
简介:具有以下特点: