小编Fro*_*ode的帖子

Doctrine2多对一关联不会使用JOIN查询

我有一个Car与实体有多对一关系的实体Owner.如果我选择所有的汽车,确实学说在一个查询Car表,然后一个对查询Owner对每一辆汽车.因此,获取N个汽车将成为N + 1个查询,而不是表CarOwner表之间的单个JOIN查询.

我的实体如下:

/** @Entity */
class Car {

  /** @Id @Column(type="smallint") */
  private $id;

  /** @ManyToOne(targetEntity="Owner", fetch="EAGER")
      @JoinColumn(name="owner", referencedColumnName="id") */
  private $owner;

  public function getId()    { return $this->id; }
  public function getOwner() { return $this->owner; }
}

/** @Entity */
class Owner {

  /** @Id @Column(type="smallint") */
  private $id;

  /** @Column(type="string") */
  private $name;

  public function getName() { return $this->name; }
}
Run Code Online (Sandbox Code Playgroud)

如果我想与他们的车主列出汽车,我会这样做:

$repo …
Run Code Online (Sandbox Code Playgroud)

php mysql doctrine-orm

8
推荐指数
1
解决办法
8663
查看次数

标签 统计

doctrine-orm ×1

mysql ×1

php ×1