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



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

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

 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查询删除所有行吗

尝试像这样将代码包装在事务中:

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();

Try

query.setParameter("id", Long.valueOf(1));

如果你的实体是Long类型(理想情况下应该是)。

参考:http://www.codejava.net/frameworks/hibernate/hibernate-basics-3-ways-to-delete-an-entity-from-the-datastore

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();
}

最新更新