我将 Symfony2 与 Doctrine2(最新版本)一起使用,并定义了这种关系:
/**
* @ORM\OneToMany(targetEntity="Field", mappedBy="event", fetch="EAGER")
* @ORM\OrderBy({"name" = "ASC"})
*/
protected $fields;
Run Code Online (Sandbox Code Playgroud)
关系的另一边定义为:
/**
* @ORM\ManyToOne(targetEntity="Event", inversedBy="fields", fetch="EAGER")
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
*/
protected $event;
Run Code Online (Sandbox Code Playgroud)
在执行“fetchOnyById”时,Doctrine 运行 2 个查询。1 获取对象本身,1 获取相关字段。我希望这是一个连接,但它不是。
在控制器中完成后,我将对象传递给树枝。在那里我再次检索字段作为对象的属性。这会导致运行另一个查询以再次检索字段。
Clearly I'm doing something wrong, as I would expect only 1 query to be run and 3 are actually run.