Doctrine2映射跨包可能吗?

时间:2011-12-21 13:43:03

标签: symfony doctrine-orm

我希望将OneToOne映射从一个Bundle中的实体映射到另一个Bundle中的Entity。我有:

# KWI\SeniorProjectBundle\Entity\Project:
use KWI\PeopleBundle\Entity\User;

/**
 * @ORM\OneToOne(targetEntity="\KWI\PeopleBundle\Entity\User")
 */
protected $mentor;

然而,运行doctrine:schema:update会出现以下错误:

[Doctrine\ORM\Mapping\MappingException]
Class KWI\PeopleBundle\Entity\User is not a valid entity or mapped super class.

两个实体都驻留在不同的数据库中(通过两个使用两个独立数据库连接的独立实体管理器实现)。

这甚至可以实现吗?我觉得拥有彼此之间映射的不同数据库实际上是很常见的。所以这应该是可能的,对吧?

2 个答案:

答案 0 :(得分:2)

Doctrine似乎不支持跨数据库的映射。将两个实体移动到同一个实体管理器中可以解决问题。

答案 1 :(得分:0)

\中的类路径中删除第一个targetEntity="\KWI\PeopleBundle\Entity\User",使其看起来像targetEntity="KWI\PeopleBundle\Entity\User"