Doctrine Regular vs Fetch join

Jie*_*eng 4 php doctrine

在学说中,常规和获取连接之间的差异是什么?我只是通过阅读文档得到它.

// regular
$query = $em->createQuery("SELECT u FROM User u JOIN u.address a WHERE a.city = 'Berlin'");
$users = $query->getResult();

// fetch
$query = $em->createQuery("SELECT u, a FROM User u JOIN u.address a WHERE a.city = 'Berlin'");
$users = $query->getResult();
Run Code Online (Sandbox Code Playgroud)

什么是获取加入的目的?如果我select u, a为什么我只是得到users($users = $query->getResult();)?如果我使用常规连接,我可能会$user->getAddresses()用来访问相关的对象?

Dan*_*erg 8

我认为文档很好地描述了它.如果使用获取连接,则相关实体将包含在水合结果中.否则他们不会,如果你然后尝试访问它们,它将触发另一个查询来获取信息.

这只是一个问题,它是否应该包括在结果中.