2014-06-07 153 views
0

我可以使用标准从我的表中删除记录?休眠删除使用标准

例如,

Criteria toDelete = session.createCriteria(Car.class, "car").createAlias("car.wheel", "wheel"); 
toDelete.add(Restrictions.eq("brand", "Toyota")); 
toDelete.add(Restrictions.eq("wheel.brand", "BBS"); 
toDelete.add(Restrictions.gt("date_of_purchase", someDay); 
toDelete.add(Restrictions.between("cost", 3000, 5000); 

如何使用toDelete标准删除我感兴趣的记录?一种低效的方法是使用toDelete标准查询id,然后从那里删除Car对象。 另外,我可以知道我删除了多少个对象吗?

回答

1

在我看来,你不能这样做,因为Hibernate不支持。 作为替代,你可以使用类似:

字符串HQL =“从用户其中username =删除:名称”;
Query query = session.createQuery(hql);
query.setString(“name”,“User 9”);
INT rowCount时= query.executeUpdate();
的System.out.println( “受影响的行:” + rowCount时);

最好的问候, 洪NGUYEN

2

你应该升级你的hibernate版本实现JPA 2.1版本(休眠的版本4.3.11.Final开始JPA 2.1 - Hibernate Downloads

一旦你已经升级了,你可以用CriteriaDelete来做你想做的。这里是一个小例子:Example