2011-06-25 29 views
0

DQLとdoctrine 2で新規作成されましたので、しばらくお待ちください。 select c, m from A10\CrmBundle\Entity\Crm c inner join c.irszam m on m.irszam = c.cim1irszam where c.kod = ?1クエリを実行するとDQL関連エラーが発生する

が、私はこのエラーを取り戻す:

[Semantical Error] line 0, col 64 near 'm on m.irszam': Error: Class A10\CrmBundle\Entity\Crm has no association named irszam

エンティティ:助けを

class Crm 
    { 
     /** 
     * @Id 
     * @OneToOne(targetEntity="megye", mappedBy="kod") 
     * 
     */ 
     protected $kod; 
     ... 
    } 

    class Megye 
    { 

     ... 

     /** 
     * @OneToOne(targetEntity="crm", inversedBy="irszam") 
     * @JoinColumn(name="irszam_id", referencedColumnName="id") 
     * @Column(type="integer") 
     */ 
     protected $irszam; 
     ... 
    } 

おかげ 私はこのクエリを持っています!

答えて

0

"on"を "with"で置き換えてください。また、identity (@Id) through foreign entities (@OneToOne)を使用しているので、Doctrine 2.1(これは既にRelease Candidate州にあります)を使用していることを確認してください。その理由は、2.0.xシリーズでは利用できないからです。

また、アソシエーションマッピングにエラーがあると思います。

class Crm 
{ 
    /** 
    * @Id 
    * @OneToOne(targetEntity="megye", mappedBy="irszam") 
    * 
    */ 
    protected $kod; 
    ... 
} 

class Megye 
{ 

    ... 

    /** 
    * @OneToOne(targetEntity="crm", inversedBy="kod") 
    * @JoinColumn(name="irszam_id", referencedColumnName="id") 
    * @Column(type="integer") 
    */ 
    protected $irszam; 
    ... 
} 

言い換えれば、あなたはmappedByとinversedByマッピングプロパティを切り替える必要があり、hereを定義されている:私はあなたが本当にやりたいことはあると思います。これらの変更後に、おそらくDBスキーマを再作成する必要があります。

+0

私はdoctrine 2.1.0RC2バージョンを使用しています。私は "on"を "with"と置き換えましたが、残念ながら問題を解決しません。たぶん、アソシエーションマッピングの問題ですか? – Smith

+0

こんにちは、私はそれを反映するために私の答えを更新したと思います。それにもかかわらず、私は最初の提案(ONの代わりにWITH)を維持していますが、それがどうなっているか教えてください。 – faken

+0

私はあなたが示唆したように作ったが、それはうまくいかない。私はアソシエーションマッピングを本当に理解できません。しかし、postgreSQLではこのクエリが実行されています。 – Smith

関連する問題