Orm 如何检索没有关联实体的实体?
我的代码是Orm 如何检索没有关联实体的实体?,orm,doctrine,symfony,Orm,Doctrine,Symfony,我的代码是 $bars = $em->getRepository('AppBundle:Bar')->findAll(); 以及实体 /** * @var int * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * * @ORM\Column(name="na
$bars = $em->getRepository('AppBundle:Bar')->findAll();
以及实体
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=45, nullable=true)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="location", type="string", length=45, nullable=true)
*/
private $location;
/**
* @var string
*
* @ORM\Column(name="zipcode", type="string", length=45, nullable=true)
*/
private $zipcode;
/**
* @var string
*
* @ORM\Column(name="description", type="string", length=45, nullable=true)
*/
private $description;
/**
* @ORM\OneToMany(targetEntity="Waiter", mappedBy="bar", fetch="EXTRA_LAZY")
*/
protected $waiters;
/**
* @ORM\OneToMany(targetEntity="Table_", mappedBy="bar", fetch="EXTRA_LAZY")
*/
protected $tables;
/** @ORM\OneToMany(targetEntity="Stock_food", mappedBy="bar", fetch="EXTRA_LAZY") */
private $stockfoods;
/** @ORM\OneToMany(targetEntity="Stock_drink", mappedBy="bar", fetch="EXTRA_LAZY") */
private $stockdrinks;
我只想检索酒吧实体,而不需要关联它们的实体(服务员、桌子、库存饮料、库存食品)
响应是所有数据,但我只需要名称、位置、zipcode和descriptionón
提前感谢 你好
我找到了解决办法!!我使用的是原始SQL查询,DBAL
$conn = $em->getConnection();
$sql = 'SELECT * FROM Bar';
$stmt = $conn->prepare($sql);
$stmt->execute();
$bars = $stmt->fetchAll();
谢谢 最简单的解决方案是在您的存储库中添加一个自定义方法,并在不使用ORM快捷方式(如findOneBy、findAll等)的情况下编写查询。我想使用ORM,因为我需要使用对象而不是DQL中的查询。您确定获得了完整的对象吗?在我看来,您只能获得代理类(将创建代理类)。EXTRA_LAZY不进行连接-相反,如果您试图从此类对象中获取属性,则会进行额外的SQL查询以澄清,如果您编写自定义查询,则可以检索对象。只检索所需的数据/对象很简单。花点时间深入阅读文档。虽然在所有关联的实体中,我都将fetch额外延迟,但当我执行查询时,它会返回所有关联的实体。