全关键实体(及其简化)

时间:2012-06-15 14:14:29

标签: doctrine doctrine-orm composite-primary-key

是否有一种方法(使用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而不是键的观点-value,所有序列化存储方案。

0 个答案:

没有答案