学说–如何在两个实体之间建立一对一关系

simPod

我有两个表:用户和联系人

用户数

  • ID
  • 用户名

联络人

  • ID
  • 用户身份
  • 电子邮件(我简化了结构)

现在,如何正确设置学说实体?

/**
 * @ORM\Entity
 * @ORM\Table(name="users")
 */
class User extends BaseEntity {

    /**
     * @Id
     * @GeneratedValue
     * @Column(type="bigint")
     */
     protected $id;

    /**
     * @ORM\Column(type="string", unique=true)
     */
    protected $username;

    /**
     * @ORM\OneToOne(targetEntity="Contact")
     * @ORM\JoinColumn(name="id", referencedColumnName="user_id", onDelete="CASCADE")
     **/
    protected $contact;
}

联系人实体:

/**
 * @ORM\Entity
 * @ORM\Table(name="contacts")
 */
class Contact extends BaseEntity {

    /**
     * @Id
     * @GeneratedValue
     * @Column(type="bigint")
     */
     protected $id;

    /**
     * @var User
     * @ORM\OneToOne(targetEntity="User")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */
    private $user;

    /**
     * @ORM\Column(type="string")
     */
    protected $email;
}

问题是我不确定实体关系是否设置正确。

  1. 我不知道如何设置是否User删除然后删除,Contact但不是这样。
  2. 如果创建$user = new User(),然后$contact = new Contact()如何加入它们?$user->contact = $contact将它后persist()flush()填充user_id正确插入数据到这两个表?
  3. 我遇到了错误,A new entity was found through the relationship '...\User#contact' that was not configured to cascade persist operations for entity: ...\Contact@0000000015f3aa5e000000012cd799f5. To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist this association in the mapping for example @ManyToOne(..,cascade={"persist"}). If you cannot find out which entity causes the problem implement '...\Contact#__toString()' to get a clue.我被卡在了我认为与我的问题#1有关的一个错误上,因此我无法测试#2。

我已经浏览了几个小时的文档,但是却陷入困境,没有找到任何可以指导我的真实示例……有人可以通过向我展示这些实体之间的适当关系来帮助我吗?

模糊树

为了级联用户删除,以便其联系人也被删除,请在Contact实体中添加onDelete="CASCADE"属性JoinColumn注释中$user(仅当删除其用户时,才删除联系人)

/**
 * @var User
 * @ORM\OneToOne(targetEntity="User")
 * @ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE")
 */
private $user;

如果在将联系人添加到用户之前坚持联系,则不会出现任何错误。如果您想通过直接将新的非持久性联系人分配给用户来添加新联系人,则需要将其添加cascade={"persist", "remove"}到您的User实体中

/**
 * @ORM\OneToOne(targetEntity="Contact",cascade={"persist", "remove"})
 * @ORM\JoinColumn(name="id", referencedColumnName="user_id")
 **/
protected $contact;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在bash中的两个循环之间创建一对一关系?

来自分类Dev

无法在实体之间建立一对一关系

来自分类Dev

SQLite-Net Extension两个实体之间的一对一关系和一对多关系

来自分类Dev

JPA:如何保存具有一对一关系的两个实体?

来自分类Dev

实体框架代码首先在复杂实体之间建立一对一关系

来自分类Dev

如何使用Hibernate保存具有一对一关系的两个类?

来自分类Dev

建立一对一关系

来自分类Dev

多表继承模型与相同两个模型之间简单的一对一关系有什么区别?

来自分类Dev

如何删除一对一关系中的实体?

来自分类Dev

定义了 2 个模型之间的一对一关系,但似乎仍然能够建立一对多

来自分类Dev

雄辩的一对一关系和两个自定义字段

来自分类Dev

Django中两个模型(字段)与当前模型的一对一关系

来自分类Dev

使用两个原理表在SQL Server中实现一对一关系

来自分类Dev

雄辩的一对一关系和两个自定义字段

来自分类Dev

插入到一对一关系中的两个表中

来自分类Dev

学说一对一关系映射

来自分类Dev

如何告诉EntityFramework 5.0两个实体之间存在一对一的关联?

来自分类Dev

如何在gorm中的两个实体之间建立一对多和多对一的关联?

来自分类Dev

两个类之间的两个“一对一”关系

来自分类Dev

无法与Sequelize建立一对一关系

来自分类Dev

模式中建立一对一关系的方法?

来自分类Dev

一对一关系与建立联系

来自分类Dev

Entity Framework Core上与同一表的两个一对一关系

来自分类Dev

当“父”表具有复合PK时,如何在JPA中建立一对一关系的模型?

来自分类Dev

实体框架代码优先一对一关系

来自分类Dev

实现实体框架一对一关系

来自分类Dev

一对一关系实体框架

来自分类Dev

实体框架中的一对一关系插入

来自分类Dev

实体框架两端可选的一对一关系

Related 相关文章

  1. 1

    如何在bash中的两个循环之间创建一对一关系?

  2. 2

    无法在实体之间建立一对一关系

  3. 3

    SQLite-Net Extension两个实体之间的一对一关系和一对多关系

  4. 4

    JPA:如何保存具有一对一关系的两个实体?

  5. 5

    实体框架代码首先在复杂实体之间建立一对一关系

  6. 6

    如何使用Hibernate保存具有一对一关系的两个类?

  7. 7

    建立一对一关系

  8. 8

    多表继承模型与相同两个模型之间简单的一对一关系有什么区别?

  9. 9

    如何删除一对一关系中的实体?

  10. 10

    定义了 2 个模型之间的一对一关系,但似乎仍然能够建立一对多

  11. 11

    雄辩的一对一关系和两个自定义字段

  12. 12

    Django中两个模型(字段)与当前模型的一对一关系

  13. 13

    使用两个原理表在SQL Server中实现一对一关系

  14. 14

    雄辩的一对一关系和两个自定义字段

  15. 15

    插入到一对一关系中的两个表中

  16. 16

    学说一对一关系映射

  17. 17

    如何告诉EntityFramework 5.0两个实体之间存在一对一的关联?

  18. 18

    如何在gorm中的两个实体之间建立一对多和多对一的关联?

  19. 19

    两个类之间的两个“一对一”关系

  20. 20

    无法与Sequelize建立一对一关系

  21. 21

    模式中建立一对一关系的方法?

  22. 22

    一对一关系与建立联系

  23. 23

    Entity Framework Core上与同一表的两个一对一关系

  24. 24

    当“父”表具有复合PK时,如何在JPA中建立一对一关系的模型?

  25. 25

    实体框架代码优先一对一关系

  26. 26

    实现实体框架一对一关系

  27. 27

    一对一关系实体框架

  28. 28

    实体框架中的一对一关系插入

  29. 29

    实体框架两端可选的一对一关系

热门标签

归档