Doctrine 所有关键实体(及其简化)

Doctrine 所有关键实体(及其简化),doctrine,doctrine-orm,composite-primary-key,Doctrine,Doctrine Orm,Composite Primary Key,有没有一种方法(根据第2条原则)让实体相互嵌入(甚至不需要为某些实体设置表格)?最简单的示例是创建一个类,如: class Point { /** @Id @Column(type="integer") */ private $x; /** @Id @Column(type="integer") */ private $y; } 然后将其嵌入另一个对象,如: class Line { /** * @OneToOne(targetEntit

有没有一种方法(根据第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而不是键值的点,即所有序列化存储方案