2013-04-15 116 views
0

我有一个数据表,其中包含我所有的对象,制造商“制造商”列表和两个按钮:更新和删除。休眠错误,当我尝试删除

public class FabricantService { 

private FabricantHome dao ; 
Session sesion ; 
List<Fabricant> list; 

    public FabricantService() { 
     super(); 
     dao = new FabricantHome(); 
    } 



    public void ajouter(Fabricant cart) { 

     sesion=HibernateUtil.getSessionFactory().getCurrentSession(); 
     sesion.beginTransaction(); 
     dao.persist(cart); 
     sesion.getTransaction().commit(); 
       } 



    public void update(Fabricant cart) { 
      sesion=HibernateUtil.getSessionFactory().getCurrentSession(); 
      sesion.beginTransaction(); 
      dao.merge(cart); 
      sesion.getTransaction().commit(); 
    } 


    public void deletee (Fabricant cart) { 
     sesion=HibernateUtil.getSessionFactory().getCurrentSession(); 
     sesion.beginTransaction(); 
     dao.delete(cart); 
     sesion.getTransaction().commit();      
} 

public List<Fabricant> list(){ 
    sesion=HibernateUtil.getSessionFactory().getCurrentSession(); 
    sesion.beginTransaction(); 
    list=dao.findAll() ; 
    return list; 

    } 


} 

更新OK它是好的重定向我在页面上更新一个制造商。

,但是当我选择删除此显示了一个这样的错误:

Caused by: javax.faces.el.EvaluationException: 
    org.hibernate.HibernateException: 
     Illegal attempt to associate a collection with two open sessions 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)  
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
    ... 23 more 
+0

此线程可能会帮助你:http://stackoverflow.com/questions/9367886/session-management-with-java-hibernate – user2256686

+0

thx很多为你的helpe ..它帮助我理解新的东西:) – FERESSS

回答

1

提交关闭会话后。

+0

thx,我在methode deletee之后做了sesion.close();但有一个错误导致:javax.faces.el.E​​valuationException:org.hibernate.NonUniqueObjectException:具有相同标识符值的不同对象已与会话相关联:[com.ardiagia.persistance.Fabricant#1] – FERESSS

+0

试试session.flush()关闭会话后。刷新会坚持你的数据并清除会话。 – commit

+0

谢谢,选中的行被删除了,但是这里有一个新的错误:::::::批量更新从update [0]返回了意外的行数;实际行数:0;预计:1 – FERESSS