2012-09-18 11 views
32

tengo una clase Categoría que contiene lo siguiente:¿Cómo funciona exactamente de usar onDelete = "SET NULL" - Doctrine2

/** 
* @ORM\OneToMany(targetEntity="Friend", mappedBy="category") 
* @ORM\OrderBy({"name" = "ASC"}) 
*/ 
protected $friends; 

y un amigo de clase con esto:

/** 
* @ORM\ManyToOne(targetEntity="Category", inversedBy="friends") 
* @ORM\JoinColumn(name="category_id", referencedColumnName="id", onDelete="SET NULL") 
*/ 
protected $category; 

Lo que querer es poder eliminar categorías sin importar si hay algunos amigos de esta categoría, y si los hay - el campo de categoría para estos amigos se establece en NULL.

traté de poner onDelete="CASCADE" a la anotación ManyToOne, a continuación, a la OneToMany, he intentado lo que se muestra más arriba, he intentado usar cascade={"remove"} en la anotación OneToMany, y nada funcionó! No pude encontrar un ejemplo también. ¿Me podría ayudar?

Respuesta

47

Esto debe ser una respuesta loca pero ¿actualizó el esquema de la base de datos? onDelete="SET NULL" está en el nivel de la base de datos, debe funcionar en innoDB.

+1

¡Eres genial! Muchas gracias! – Faery

Cuestiones relacionadas