Разница между mappedBy и inversedBy

mappedBy - указывается на обратной стороне (OneToMany)
inversedBy - указывается на владеющей стороне (ManyToOne)

use Doctrine\ORM\Mapping as ORM;

class Cat
{
	/**
	* Двусторонняя связь - один ко многим (обратная сторона)
	*
	* @ORM\OneToMany(targetEntity="Ann", mappedBy="cat")
	*/
	private $ann_array;
 
	public function __construct() {
		$this->ann_array = new \Doctrine\Common\Collections\ArrayCollection();
	}
 
	/**
	* Для вывода значений добавить "->toArray()"
	*/
	public function getAnnArray()
	{
		return $this->ann_array->toArray();
	}
}
use Doctrine\ORM\Mapping as ORM;

class Ann
{
	/**
	* Двусторонняя связь - множество аннотаций расположено в одной категории (сторона владельца)
	*
	* @ORM\ManyToOne(targetEntity="Cat", inversedBy="ann_array")
	* @ORM\JoinColumn(name="cat_id", referencedColumnName="id")
	*/
	private $cat;
}

Можно вместо  @ORM\ManyToOne использовать прямой вызов

use Doctrine\ORM\Mapping\ManyToOne;
use Doctrine\ORM\Mapping\JoinColumn;

/**
 * @ManyToOne(...)
 * @JoinColumn(...)
 */