运行查询时出现DQL关联错误

| 我是DQL和准则2的新手,所以请耐心等待。 我有这个查询:
select c, m from A10\\CrmBundle\\Entity\\Crm c inner join c.irszam m on m.irszam = c.cim1irszam where c.kod = ?1
我收到此错误:
[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;
       ...
    }
感谢帮助!     
已邀请:
        尝试在查询中将\“ on \”替换为\“ with \”。另外,您通过外部实体(@OneToOne)使用身份(@Id),因此请确保使用的是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;
   ...
}
换句话说,您必须切换此处定义的mapledBy和inversedBy映射属性。这些更改之后,您可能必须重新创建数据库模式。     

要回复问题请先登录注册