一个实体与另一个实体具有2个ManyToOne关系

灰草

我正在使用Symfony5。我有2个具有关系的实体,角色和婚礼。

每个角色可以举行许多婚礼。每个婚礼与2个不同的角色有关。

/**
 * @ORM\Entity(repositoryClass=CharacterRepository::class)
 */
class Character
{
/**
 * @ORM\Id
 * @ORM\GeneratedValue
 * @ORM\Column(type="integer")
 */
private $id;

/**
 * @ORM\Column(type="string", length=50, nullable=true)
 */
private $firstName;

/**
 * @ORM\Column(type="string", length=50, nullable=true)
 */
private $lastName;
[...]

和婚礼:

/**
 * @ORM\Entity(repositoryClass=WeddingRepository::class)
 */
class Wedding
{
/**
 * @ORM\Id
 * @ORM\GeneratedValue
 * @ORM\Column(type="integer")
 */
private $id;

/**
 * @ORM\Column(type="string", length=4, nullable=true)
 */
private $startYear;

/**
 * @ORM\Column(type="string", length=4, nullable=true)
 */
private $endYear;
[...]
}

我试图在“婚礼”实体(persona1和persona2)中设置2个不同的ManyToOne关系,但是persona1和persona2具有相同的inversedBy =“ weddings”,因此它不起作用。

我也尝试了2个ManyToMany关系,但是Doctrine不喜欢它:

 // Character
  /**
  * @ORM\ManyToMany(targetEntity=Wedding::class, mappedBy="persona1")
  */
private $weddings1;

/**
 * @ORM\ManyToMany(targetEntity=Wedding::class, mappedBy="persona2")
 */
private $weddings2;
// Wedding

/**
 * @ORM\ManyToMany(targetEntity=Character::class, inversedBy="weddings1")
 */
private $persona1;

/**
 * @ORM\ManyToMany(targetEntity=Character::class, inversedBy="weddings2")
 */
private $persona2;

The mappings App\Entity\Wedding#persona2 and App\Entity\Character#weddings are inconsistent with each other.

既然每次婚礼都与2个角色有关,那么多对多还是多对多有什么良好的关系?如何使其与Doctrine一起使用?

感谢您的所有建议!

哈里德·朱奈德(M Khalid Junaid)

如果字符1和字符2之间没有这样的特定原因或区别,我建议ManyToManyWeddingCharacter实体之间建立关系

class Character
{
    // ...
    
    /**
    * @ORM\ManyToMany(targetEntity=Wedding::class, mappedBy="characters")
    */
    private $weddings;
}

class Wedding
{
    // ...
    
    /**
     * @ORM\ManyToMany(targetEntity=Character::class, inversedBy="weddings")
     */
    private $characters;
}

这样,如果您有更多角色要分配给婚礼,则可以在将来进行缩放

如果需要根据字符1或字符2进行特定的严格操作,则可以使用OneToManyManyToOne作为

class Character
{
    // ...

    /**
     * @ORM\OneToMany(targetEntity=Wedding::class, mappedBy="characterA")
     */
    private $weddingsA;

    /**
     * @ORM\OneToMany(targetEntity=Wedding::class, mappedBy="characterB")
     */
    private $weddingsB;
}

class Wedding
{
    // ...

    /**
     * @ORM\ManyToOne(targetEntity=Character::class, inversedBy="weddingsA")
     */
    private $characterA;
    
    /**
     * @ORM\ManyToOne(targetEntity=Character::class, inversedBy="weddingsB")
     */
    private $characterB;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过另一个实体的关系查找实体

来自分类Dev

Symfony2获取另一个实体中一个实体的实体

来自分类Dev

使用Automapper将一个实体映射到另一个具有属性的实体时出错

来自分类Dev

SQL 选择具有另一个实体的大多数实例的实体

来自分类Dev

创建一个包含另一个现有实体的新实体

来自分类Dev

教义实体扩展另一个实体

来自分类Dev

Symfony2-在一个字段上引用两个实体的一个ManyToOne关系

来自分类Dev

LINQ-仅将具有整个架构的一个属性与另一个实体连接

来自分类Dev

使用另一个实体的ID创建实体,但两者之间没有关系

来自分类Dev

使用另一个实体的ID创建实体,但两者之间没有关系

来自分类Dev

与一个特定实体具有一对多关系的几个实体

来自分类Dev

当一个实体与另一个实体有多个0..1:n关系时,如何使用Fluent API定义它们?

来自分类Dev

当一个实体与另一个实体有多个0..1:n关系时,如何使用Fluent API定义它们?

来自分类Dev

EF一对一的关系变更实体与另一个(替代)

来自分类Dev

在Spring Data Mongo中保存与另一个实体具有循环引用的实体将失败

来自分类Dev

根据另一个联接的实体字段值查询一个实体

来自分类Dev

在Hibernate中用另一个引用的实体插入/更新一个实体

来自分类Dev

如何使用Dcotrine冲洗一个实体而不冲洗另一个实体?

来自分类Dev

尝试将一个实体与另一个实体关联会导致插入

来自分类Dev

根据另一个联接的实体字段值查询一个实体

来自分类Dev

如何使用Dcotrine冲洗一个实体而不冲洗另一个实体?

来自分类Dev

在Hibernate中用另一个引用的实体插入/更新一个实体

来自分类Dev

为一个实体而不是另一个实体阻止 EntityManager

来自分类Dev

使用实体框架将元素添加到另一个现有实体

来自分类Dev

一个实体引用 2 个相同实体类型的实体关系?

来自分类Dev

原则2:通过关联的另一个实体的属性对关联的实体进行排序

来自分类Dev

在Symfony2上添加与另一个特定实体相关的新实体

来自分类Dev

CRM 2011 PLUGIN更新另一个实体

来自分类Dev

从另一个列表更新列表-实体框架

Related 相关文章

  1. 1

    通过另一个实体的关系查找实体

  2. 2

    Symfony2获取另一个实体中一个实体的实体

  3. 3

    使用Automapper将一个实体映射到另一个具有属性的实体时出错

  4. 4

    SQL 选择具有另一个实体的大多数实例的实体

  5. 5

    创建一个包含另一个现有实体的新实体

  6. 6

    教义实体扩展另一个实体

  7. 7

    Symfony2-在一个字段上引用两个实体的一个ManyToOne关系

  8. 8

    LINQ-仅将具有整个架构的一个属性与另一个实体连接

  9. 9

    使用另一个实体的ID创建实体,但两者之间没有关系

  10. 10

    使用另一个实体的ID创建实体,但两者之间没有关系

  11. 11

    与一个特定实体具有一对多关系的几个实体

  12. 12

    当一个实体与另一个实体有多个0..1:n关系时,如何使用Fluent API定义它们?

  13. 13

    当一个实体与另一个实体有多个0..1:n关系时,如何使用Fluent API定义它们?

  14. 14

    EF一对一的关系变更实体与另一个(替代)

  15. 15

    在Spring Data Mongo中保存与另一个实体具有循环引用的实体将失败

  16. 16

    根据另一个联接的实体字段值查询一个实体

  17. 17

    在Hibernate中用另一个引用的实体插入/更新一个实体

  18. 18

    如何使用Dcotrine冲洗一个实体而不冲洗另一个实体?

  19. 19

    尝试将一个实体与另一个实体关联会导致插入

  20. 20

    根据另一个联接的实体字段值查询一个实体

  21. 21

    如何使用Dcotrine冲洗一个实体而不冲洗另一个实体?

  22. 22

    在Hibernate中用另一个引用的实体插入/更新一个实体

  23. 23

    为一个实体而不是另一个实体阻止 EntityManager

  24. 24

    使用实体框架将元素添加到另一个现有实体

  25. 25

    一个实体引用 2 个相同实体类型的实体关系?

  26. 26

    原则2:通过关联的另一个实体的属性对关联的实体进行排序

  27. 27

    在Symfony2上添加与另一个特定实体相关的新实体

  28. 28

    CRM 2011 PLUGIN更新另一个实体

  29. 29

    从另一个列表更新列表-实体框架

热门标签

归档