Bonjour à tous,
Je rencontre un problème avec la gestion des transactions avec Doctrine2 :
Voici mon code, disons qu'un truc est composé d'item:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class truc{
	/**
        * @ORM\OneToMany(targetEntity="Item", mappedBy="item", cascade={"remove"})
        */
         private $items;
}

class Manager{

	public function deleteItem($item){
		 $truc = $item->getTruc();
-->breakpoint<-- $this->entityManager->beginTransaction();
		 try{
			$this->entityManager->lock($truc, \Doctrine\DBAL\LockMode::PESSIMISTIC_WRITE);
		$this->entityManager->refresh($truc);
                if($truc===null)
                         throw ....
		}catch...

	}
}
En mode debug, j'arrive sur le breakpoint, je supprime en base la ligne correspondant à l'entity "truc", j'avance dans le debug, je rafraîchis l'entity avec la méthode refresh.
A ce moment, en toute logique, $truc devrait être null ou vide puisque la ligne en base a été supprimée. Et pourtant non !
Une exception SQL est ensuite levée pendant le flush (pas très jolie et pas assez explicite à mon goût).

Comment être sûr que l'entity est toujours présente en base de données ?

Merci d'avance

Piloo