Jaka jest różnica między odwróconym i zmapowanym przez?

Rozwijam swoją aplikację za pomocą Zend Framework 2 i Doctrine 2.

Podczas pisania adnotacji nie jestem w stanie zrozumieć różnicy między nimimappedBy iinversedBy.

Kiedy powinienem użyćmappedBy?

Kiedy powinienem użyćinversedBy?

Kiedy nie powinienem ich używać?

Oto przykład:

 /**
 *
 * @ORM\OneToOne(targetEntity="\custMod\Entity\Person", mappedBy="customer")
 * @ORM\JoinColumn(name="personID", referencedColumnName="id")
 */
protected $person;

/**
 *
 * @ORM\OneToOne(targetEntity="\Auth\Entity\User")
 * @ORM\JoinColumn(name="userID", referencedColumnName="id")
 */
protected $user;

/**
 *
 * @ORM\ManyToOne (targetEntity="\custMod\Entity\Company", inversedBy="customer")
 * @ORM\JoinColumn (name="companyID", referencedColumnName="id")
 */
protected $company;

Zrobiłem szybkie wyszukiwanie i znalazłem następujące, ale wciąż jestem zdezorientowany:

Przykład 1przykład 2przykład 3

questionAnswers(4)

yourAnswerToTheQuestion