Cita:
Iniciado por SirDuque Buen en principio no veo utilidad de crear una clave primaria compuesta, si una de ellas es AUTO INCREMENT.
La clave primaria deber ser UNICA y el AUTO INCREMENT cumple esa regla.
$book_id es una FK que apunta a la entidad Book, lo indicaste vos en la anotación de dicha propiedad.
Código PHP:
Ver original/**
* @var intenger
*
* @ORM\Column(name="book_id", type="integer", nullable=false)
* @ORM\ManyToOne(targetEntity="Book", inversedBy="Branch")
*/
private $book_id;
El constructor se utiliza para ejecutar acciones, no para setear valores, las entidades la maneja el ORM Doctrine.
Si vos queres buscar el Branch y solo tenes el book_id lo haces de la siguiente manera:
$parent_branch = $em->getRepository('BranchMainBundle:Branch')->find( $book_id );
Ok una vez más creo que no me he sabido explicar.
La clave compuesta creía que era necesaria, pero te tendría que enseñar para ello el modelo entidad relación y el esquema de la aplicación que quiero hacer.
Básicamente quiero que la Id única de cada rama la formen su Id + Book_id, una vez que se crea una rama nueva, esta coge los datos del Book al que pertenece y añade una tupa en la Bd con un Id (autoincrement) y un Book_id dado por la aplicación. Pero ahora que lo pienso igual lo que dices tienes razón, ¿para qué un autoincrement si es compuesta? , jejje que lío. Tengo que darle un vuelta a esto. El book_id tendría que ser más bien como bien dices un FK.
Gracias