在 Doctrine2 上找不到实体异常

Posted

技术标签:

【中文标题】在 Doctrine2 上找不到实体异常【英文标题】:Entity not Found Exception on Doctrine2 【发布时间】:2018-01-16 07:49:25 【问题描述】:

场景:我有两个实体。产品和产品组。 Product 与 ProductGroup 具有多对一的关系。我软删除 ProductGroup。然后我尝试在一个产品上调用 getProductGroup,该产品的产品组被软删除。

问题: 我得到的是“消息:找不到实体”,而不是预期的 null 结果。异常消息。

$productGroupName = $product->getProductGroup() !== null ? $product->getProductGroup()->getName() : '';

【问题讨论】:

【参考方案1】:

这是因为 Doctrine2 正在生成代理,而不是 soft-deletable 的情况,尽管我正在使用它。但是在没有实现soft-deleteable 的实体中,我遇到了同样的问题。所以对我来说固定的是在定义关系的实体注释上添加fetch="EAGER"。喜欢

/**
 * @var \ReisesparerAPIs\Entity\Vouchers
 *
 * @ORM\OneToOne(targetEntity="ReisesparerAPIs\Entity\Vouchers", inversedBy="couponOrder", fetch="EAGER")
 * @ORM\JoinColumns(
 *   @ORM\JoinColumn(name="voucher_id", referencedColumnName="id")
 * )
 */
private $voucher;

Reference Link

【讨论】:

以上是关于在 Doctrine2 上找不到实体异常的主要内容,如果未能解决你的问题,请参考以下文章

类在firebase消息颤动上找不到异常

Doctrine 2 找不到实体类

在插入,更新或删除操作期间,在实体上找不到属性?

在 setContentView 上找不到资源异常

在共享主机中的 Lumen 项目上找不到类异常

在 Doctrine 2 / CodeIgniter 2 中找不到实体模型