В чем разница между inversedBy и mappedBy?

Я разрабатываю свое приложение, используя Zend Framework 2 и Doctrine 2.

При написании аннотаций я не могу понять разницу междуmappedBy а также .inversedBy

Когда я должен использовать?mappedBy

Когда я должен использовать?inversedBy

Когда я не должен использовать ни один?

Вот пример:

 /**
 *
 * @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;

Я сделал быстрый поиск и нашел следующее, но я все еще в замешательстве:

пример 1пример 2пример 3

Ответы на вопрос(4)

Ваш ответ на вопрос