我希望将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.
两个实体都驻留在不同的数据库中(通过两个使用两个独立数据库连接的独立实体管理器实现)。
这甚至可以实现吗?我觉得拥有彼此之间映射的不同数据库实际上是很常见的。所以这应该是可能的,对吧?
答案 0 :(得分:2)
Doctrine似乎不支持跨数据库的映射。将两个实体移动到同一个实体管理器中可以解决问题。
答案 1 :(得分:0)
从\
中的类路径中删除第一个targetEntity="\KWI\PeopleBundle\Entity\User"
,使其看起来像targetEntity="KWI\PeopleBundle\Entity\User"
。