Doctrine 所有关键实体(及其简化)
有没有一种方法(根据第2条原则)让实体相互嵌入(甚至不需要为某些实体设置表格)?最简单的示例是创建一个类,如: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
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而不是键值的点,即所有序列化存储方案