2011-12-21 8 views
2

私は、あるバンドルのエンティティから別のバンドルのエンティティへのOneToOneマッピングをしたいと思います。私は:複数のバンドル間のDoctrine2マッピングが可能ですか?

# 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. 

両方のエンティティは、(二つの別々のDB接続を使用する2つの別々のエンティティ・マネージャを介して実現される)異なるデータベースに存在します。

これも可能ですか?私は、実際にはお互いの間にマッピングを持つ異なるデータベースを持っているという気持ちがあります。これは可能でしょうか?

答えて

2

Doctrineはデータベース間のマッピングをサポートしていないようです。両方のエンティティを同じエンティティマネージャに移動すると、問題が解決されます。

+0

スキーマを変更するときと同じようにスキーマやマッピングを再生成したいのですか?これで、doctrineスキーマを強制的に更新しようとするとき、またはSQLをダンプするときに、ManyToMany関係にエラーが流れるようになります。あなたの言うことは、エンティティを一方の側(1つのコントローラのみで定義)で実行し、他方から呼び出すことですか?例えば。一方または他方の側のfkテーブルをフィルタリングすることを除いて、両側で永遠に生成するか? – blamb

+0

の世代は私が意味するものです。 – blamb

0

targetEntity="\KWI\PeopleBundle\Entity\User"のクラスパスから最初の\を削除すると、targetEntity="KWI\PeopleBundle\Entity\User"のように見えます。

+0

残念なことに、何も変更していないのに、同じエラーです。 – Fabian

+0

これは奇妙です。なぜなら、 '\\'で始めると同じエラーが出るからです。 –

関連する問題