problème de supression avec Hibernate
Bonjour,
Je commence mon application, et j'ai développer un test JUnit pour voir si ma SessionFactory fonctionne correctement (et pour mieux appréhender Hibernate en même temps :oops:)
Le test consiste à faire une insertion en base de données, une modification, puis une suppression, tout simple. Voici le code de ma fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
public void testCRUD() {
//initialisation
Session session = HibernateUtil.getSessionFactory().openSession();
//insertion
Produit prodInsert = new Produit();
prodInsert.setCodeISBN13("0000");
prodInsert.setTitreProduit("Un titre pour l'insertion Test");
prodInsert.setCodeEAN("0000");
session.beginTransaction();
session.save(prodInsert);
session.getTransaction().commit();
//listing
Produit prodListing = (Produit) session.load(Produit.class, new String("0000"));
assertEquals("Une insertion ne s'est pas faite ou s'est mal faite (voir si il existe un produit avec 0000 comme EAN13", prodListing.getCodeEAN(), "0000");
//modification
session.beginTransaction();
prodListing.setTitreProduit("Un nouveau Titre ! pour test");
session.update(prodListing);
session.getTransaction().commit();
//voir si la modification s'est effectuée
prodListing = (Produit) session.load(Produit.class, new String("0000"));
assertEquals("La modification ne s'est pas correctement passée", prodListing.getTitreProduit(), "Un nouveau Titre ! pour test");
//suppression
session.beginTransaction();
session.delete(prodListing);
session.getTransaction().commit();
session.flush();
session = HibernateUtil.getSessionFactory().openSession();
//session.clear();
Produit prodListing2 = (Produit) session.load(Produit.class, new String ("0000"));
assertEquals("L'enregistrement ne s'est pas effacé !!", prodListing2.getCodeEAN(), null);
} |
Le problème est que, dans la dernière partie, on est censés récupéré un objet vide (car supprimé auparavant) mais j'arrive toujours à avoir l'objet !!!! Il n'est pas dans la base de données mais il le récupère quand même, quesque je ne comprends pas ???