2012-03-23 11 views
3

多相関連(クラステーブル継承)があり、WHERE句で "x INSTANCE OF Entity"を使用して特定の子クラスのエンティティを照会する必要があります。今、私はその子クラスのための具体的な条件を配置する必要がありますが、私はこのエラーを取得:Doctrine2との多型関連でフィールドが見つからない

人=親クラス

従業員=子クラス

「クラスの人がstudent_field_1という名前の関連性を持っていません」 Student =子クラス

DoctrineにPersonが実際にStudentであることを教えてくれて、私がStudentフィールドをWHEREに入れることを許可する方法はありますか?

+0

現在の(yml)スキーマはどのように見えますか? –

+0

クエリビルダコードを投稿できますか?私も同様の問題がありましたが、何とか解決しました。あなたも同じ問題を抱えているかどうかを知る必要があります;) – Broncha

答えて

0

「マップされたスーパークラス」は、親子間の明示的なリンク、単なる単純継承を必要としないため、あなたがしようとしていることにもっと適しているようです。クラス表継承して

http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/inheritance-mapping.html#mapped-superclasses

あなたの鍵を介して2つのエンティティをリンク弁別マップを提供するために必要。

+0

マップされたスーパークラスがどのようにクエリに役立つかはわかりません。 btw、私はそれらの3つのテーブルを持っている必要がありますので、dbは今のところです – dimirc

0

あなただけの学生を照会している場合は、なぜあなたはちょうどこれをしない「子クラスのテーブルは、外部キー制約を介して親クラスのテーブルにリンクされなければなりませんか」?

SELECT s FROM Student s WHERE s.student_field_1 = ... 
+0

実際には関連しています。例:car.person(従業員または学生) – dimirc

+1

おっと、ごめんなさい。何を求めているのかに関する機能要求があります:http://www.doctrine-project.org/jira/browse/DDC-16 – Benjamin

+0

はいベンジャミン、それは問題です。この機能は実装されていません。何らかの回避策があれば、どんな考えですか? – dimirc

関連する問題