日期:2014-05-19  浏览次数:20637 次

ssh 中不能删除数据
public void deleteRoleFunctionsbyrole( final Serializable roleid) throws Exception {
this.getHibernateTemplate().getSessionFactory()
.openSession()
.createSQLQuery("delete from role_function where role_id=?").setParameter(0, roleid);
}

------解决方案--------------------
this.getHibernateTemplate().getSessionFactory()
.openSession()
.createSQLQuery("delete from role_function where role_id=? ").setParameter(0, roleid);


语句编程规范 最好分开写!有时候运行会不通过。 将sql语句字符串 最后面加一个空格
------解决方案--------------------
你的事物没提交,数据库肯定是删不掉的 !! 


Java code
Session session=HibernateSessionFactory.getSession();
      String hql="delete People where id=:id";
      Transaction t=null;
      try
      {
       t=session.beginTransaction();
       Query q=session.createQuery(hql);
          q.setParameter("id", id);
          q.executeUpdate();
          t.commit();
      }catch(Exception ex)
      {
       if(t!=null)
       {
        t.rollback();
       }
      }finally
      {
       session.close();
      }