2012-10-10 4 views
1

Mon application utilise hsql comme base de données. Cela fonctionnait bien jusqu'à maintenant. Dans la production, j'ai reçu l'exception org.hibernate.SerializationException qui ne pouvait pas désérialiser l'exception EOF. Je n'ai pas pu obtenir la trace de la pile complète car l'exception n'est pas correctement interceptée dans mon code.Impossible de désérialiser l'exception

Je n'ai pas non plus la séquence exacte des événements ayant provoqué cette exception. Après avoir redémarré le tomcat et hql le problème a disparu.

Désolé d'être vague, mais j'ai besoin d'aide avec l'analyse des causes premières. Quel aurait pu être le problème ici?

validateSession(); 
     Session session = SessionFactory.getInstance(SessionContext.DISTRIBUTED).getSession(); 
     session.beginTransaction(); 
     List results; 
     try { 
      Criteria cri = session.createCriteria(Filter.class); 
      cri.add(Restrictions.eq("user", userVO.user())); 
      setLazyMode(cri); 
      results = cri.list(); 
      session.getTransaction().commit(); 
     } finally { 
      rollbackIfStillOpen(session); 
     } 

Répondre

0

J'sais si elle vous aidera, mais j'avais même question et il est apparu que j'avais mon @Id au-dessus du membre au lieu du getter ...

je pense que les messages d'exception de mise en veille prolongée sont très très pauvres . J'ai dû déboguer et créer des cas de test spéciaux pour identifier le problème. Cela aurait-il été si difficile à énoncer pour Hibernate: je ne trouve pas d'ID. Est-il annoté ou mappé? Mettez votre annotation sur le getter au lieu du membre.

Ce qui m'amène au fait que je ne comprends pas pourquoi une fois il doit être sur le getter et l'autre fois sur le membre ... Pourquoi ne pas mettre tout sur le membre ou le getter ?? Les deux getter et membres sont liés les uns aux autres, alors pourquoi toutes ces conneries?

Questions connexes