我用hibernate操作数据库 删除记录时 return true 但是删除不掉 hibernate sql语句也没有打印 配置文件中show_sql 是true
一下是删除代码:
public boolean DeleteObj(Object obj){
try{
startTransaction();
session.delete(obj);
return true;
}catch(HibernateException e){
System.out.println(e.getMessage());
log.fatal(e);
}
return false;
}startTransaction():
private void startTransaction() {
session = HibernateUtil.currentSession();
session.beginTransaction();
}事物和session是通过filter关闭的一下是测试代码:
                  NbrT nbr = nti.getNbrT(1); //nbi 测试类对象 NbrT要删除的对象类 对象获取了 打印出来nbr的属性 boolean flag = nti.deleteNbr(nbr);可是就是删除不掉!

解决方案 »

  1.   

    搞定了 原因是要我的事物没有启动成功!startTransaction(): 
    private void startTransaction() { 
    session = HibernateUtil.currentSession(); 
    session.beginTransaction(); 
    } 这个地方 应该改为 :private void startTransaction() { 
    session = HibernateUtil.currentSession(); 
    HibernateUtil.beginTransaction(); 
    } 要统一呵呵
      

  2.   

    怎么只有 startTransaction(), 没有commitTransaction()。 不知问题是不是在这里?
      

  3.   

    我的那个session和事物的时间都在HibernateUtil中定义好了或者这个地方改:public boolean DeleteObj(Object obj){ 
    try{ 
    startTransaction();  ==>> 此句改为:session = HibernateUtil.currentSession(); Transaction trs = session.beginTransaction();
    session.delete(obj);  ==>此句后面加上: trs.commit(); session.close();
    return true; 
    }catch(HibernateException e){ 
    System.out.println(e.getMessage()); 
    log.fatal(e); 

    return false; 

      

  4.   

    关闭事物我是通过filter管理的就是事物可能没启动成功!