symfony2 prepersist preflush getrepository getdoctrine generate created_at php symfony doctrine2

php - prepersist - symfony created_at



Diferente en AnotaciĆ³n Symfony 2/Doctrine 2 (1)

El primero le dice al ORM que se realice la cascada. Por lo tanto, Doctrine mantendrá los datos en la memoria para realizar la cascada de eliminación.

El segundo le dirá a la base de datos que realice la cascada onDelete, descargando el proceso de la doctrina.

Recuerde que la primera opción mantendrá en la memoria las matrices / asociaciones para realizar la cascada de eliminación, que puede ser muy pesada.

El caso de uso típico para el primer parámetro es un caso en el que el gráfico del modelo de datos no es demasiado pesado, y realmente desea benficar todos los eventos del ciclo de vida de las entidades, incluso aquellos que se eliminan utilizando la cascada.

La desventaja de la segunda es que no puede beneficiarse de estos eventos del ciclo de vida de las entidades, pero si su modelo / gráfico de datos es realmente demasiado pesado, esta puede ser la única opción para tratar con Cascade.

¿Cuál es la diferencia entre estos dos?

/** * @ORM/ManyToOne(targetEntity="Category", inversedBy="products",cascade={"remove"}) * @ORM/JoinColumn(name="category_id", referencedColumnName="id") */ protected $category;

y

/** * * @ORM/ManyToOne(targetEntity="Category", inversedBy="products") * @ORM/JoinColumn(name="category_id", referencedColumnName="id", onDelete="CASCADE")) */ protected $category;

Gracias !