すべてのオブジェクト、メーカー「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