0

すべてのオブジェクト、メーカー「Fabricant」のリスト、および更新と削除の 2 つのボタンを含むデータテーブルがあります。

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;

    }


}

update OK 1 つのメーカーを更新するページにリダイレクトされても問題ありません。

しかし、これを削除することを選択すると、次のエラーが表示されます。

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
4

1 に答える 1