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:
$actual_book = $em->getRepository('BranchMainBundle:Book')->find($book_id);
$parent_branch = $em->getRepository('BranchMainBundle:Branch')->find( $actual_book );