是否有一种方法(使用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,所有序列化存储方案。