inversedBy 和mappedBy 有什么区别?
我正在使用 Zend Framework 2 和 Doctrine 2 开发我的应用程序.
I am developing my application using Zend Framework 2 and Doctrine 2.
在写注解时,我无法理解 mappedBy
和 inversedBy
之间的区别.
While writting annotations, I am unable to understand the difference between mappedBy
and inversedBy
.
我应该什么时候使用mappedBy
?
我应该什么时候使用inversedBy
?
我什么时候不应该使用?
When should I use neither?
这是一个例子:
/**
*
* @ORMOneToOne(targetEntity="custModEntityPerson", mappedBy="customer")
* @ORMJoinColumn(name="personID", referencedColumnName="id")
*/
protected $person;
/**
*
* @ORMOneToOne(targetEntity="AuthEntityUser")
* @ORMJoinColumn(name="userID", referencedColumnName="id")
*/
protected $user;
/**
*
* @ORMManyToOne (targetEntity="custModEntityCompany", inversedBy="customer")
* @ORMJoinColumn (name="companyID", referencedColumnName="id")
*/
protected $company;
我进行了快速搜索并找到了以下内容,但我仍然感到困惑:
I did a quick search and found the following, but I am still confused:
- 示例 1
- 示例 2一个>
- 示例 3
推荐答案
- mappedBy 必须在(双向)关联的反面指定
- inversedBy 必须在(双向)关联的拥有方指定
- mappedBy has to be specified on the inversed side of a (bidirectional) association
- inversedBy has to be specified on the owning side of a (bidirectional) association
- ManyToOne 始终是双向关联的拥有方.
- OneToMany 始终是双向关联的反面.
- OneToOne 关联的拥有方是包含外键的表的实体.
来自教义文档:
参见 https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/unitofwork-associations.html
相关文章