Doctrine2忽略未定义的鉴别器类

时间:2014-02-04 16:20:43

标签: symfony doctrine-orm

使用doctrine2“类表继承”来安排不同类型的事件。

假设方案:

Scheme

这一切都很好,但事实是 - 由于我们的模块化内部系统 - 某些类可能会从鉴别器映射中“取消注册”(在缓存中?)。 当发生这种情况时,findAll将抛出一个异常,告诉我他找不到正确的对象映射。

所以我想到的选项是:

重写存储库方法(findOne,findBy等)以向查询添加过滤器。

$discrClasses = array();
 foreach($this->_em->getMetadataFactory()->getAllMetadata() as $class) {
        $discrClasses[] = $class->getName();
    }
    $discrQuery = sprintf('f.discr INSTANCE OF (%s)', implode(',', $discrClasses));

我的问题是:这是处理此问题的正确方法还是有更好的解决方案?

0 个答案:

没有答案