在hibernate Spring java中删除数据库中的所有对象

时间:2016-08-16 11:22:00

标签: java spring hibernate oracle11g

我想使用hibernate spring从 xyz 表中删除id = 1的所有行。

我尝试过以下代码,但它没有给出错误但没有删除行 -

 Session session = (Session) getEm().getDelegate();
 String sql ="Delete from xyz where id=:id" ;
SQLQuery query  = session.createSQLQuery(sql);
query.setParameter("id", "1");
int flg = query.executeUpdate();

请帮我用hibernate查询删除所有行。

2 个答案:

答案 0 :(得分:0)

public void deleteById(Class clazz,Integer id) {
    String hql = "delete " + clazz.getName() + " where id = :id";
    Query q = session.createQuery(hql).setParameter("id", id);
    q.executeUpdate();
}

答案 1 :(得分:0)

尝试在以下事务中包装代码:

Session session = (Session) getEm().getDelegate();
Transaction tx = session.beginTransaction();
String sql ="Delete from xyz where id=:id" ;
SQLQuery query  = session.createSQLQuery(sql);
query.setParameter("id", "1");
int flg = query.executeUpdate();
tx.commit();