2011-03-20 43 views
4

我使用Doctrine 2连接并从一个共享后端数据库生成对象到一个文件应用程序。因此,我不能让Doctrine完全自动化表生成,并且需要定制从类属性到数据库表字段的映射。默认情况下,下列注释映射到表格字段'pubofficeid_id'。我需要它映射到'pubofficeid'。这可能吗?我可以更改注释或类属性名称中的任何内容。教条2与自定义字段名称的manytoone关系

/** 
* @ManyToOne (targetEntity="Hs_Profile_Staff", inversedBy="staffPubRelation", cascade={"persist"}) 
*/ 
public $pubofficeid; 
+2

您的实体属性应该是私有的或受保护的,而不是公有的。参见[最佳实践](http://www.doctrine-project.org/docs/orm/2.0/en/reference/best-practices.html?highlight=public%20private%20protected#don-t-use-public-性能上,实体) – Phil 2011-03-20 22:04:45

回答

10

One-To-Many, Bidirectional文档中的示例非常清楚地说明了这一点。

class Feature 
{ 
    // ... 
    /** 
    * @ManyToOne(targetEntity="Product", inversedBy="features") 
    * @JoinColumn(name="product_id", referencedColumnName="id") 
    */ 
    private $product; 
    // ... 
}