1

有没有办法(使用 Doctrine 2)让实体相互嵌入(甚至不需要为某些实体提供表格)?有一个类的最简单的例子是:

class Point {

    /** @Id @Column(type="integer") */
    private $x;

    /** @Id @Column(type="integer") */
    private $y;
}

然后将其嵌入到另一个对象中,例如:

class Line {

    /**
     * @OneToOne(targetEntity="Point")
     * @JoinColumn(name="start_x", referencedColumnName="x")
     * @JoinColumn(name="start_y", referencedColumnName="y")
     **/
    private $start;

    /**
     * @Column(type="integer")
     **/
    private $length;
}

要点:所有字段都Point包含在它的主键中,实际上它已嵌入Line其中,因此没有必要使用它的表。

我知道一种可能性,可以array用作类型并让 PHP 将点序列化为 varchar 字段,但这会消除我使用 ORM 而不是键值的这一点,一切都是序列化的存储方案。

4

0 回答 0