原则外键约束

时间:2019-05-08 14:51:01

标签: symfony doctrine-orm doctrine

我有2个两个表XXXX和YYYY。在第一个中,我有一个到第二个的外键。

create table XXXXXX
(
    id             int   not null,
    yyyyy_id       int   not null,
)

create table YYYYY
(
    id             int   not null,
)

因此,在我的学说实体中,我想用学说注释来表示这种关系。但是,所有关联(OneToMany,ManyToOne等)都需要一个targetEntity参数。

是否可以有一个像$yyyyId这样的自定义字段并在其上进行映射?

也许是这样的:

    /**
     * @ORM\Column(name="yyyyy_id", type="integer")
     * @ORM\@JoinTable(
     *      name="YYYYY",
     *      joinColumns={@ORM\JoinColumn(name="yyyyy_id", referencedColumnName="id", fieldName="yyyyyId")}
     * )
     */
    private $yyyyyId;

并且等效于:

alter table XXXXX
    add constraint fk foreign key (yyyyy_id) references YYYYY (id) on delete cascade;

2 个答案:

答案 0 :(得分:-1)

如果需要使用Doctrine从联接表重新审视数据,则需要为此表创建实体。 Documentation。 否则,您需要手动添加此关系,并使用Native SQL进行查询

答案 1 :(得分:-1)

您可以尝试这个吗?

/**
* @ORM/ManyToOne(targetEntity="App\Entity\")
*/
private $yyyyyId;