symfony2 - doctrine - oneToMany

时间:2012-01-30 13:22:54

标签: symfony doctrine-orm

我在我的实体中定义了以下关系:

实体区

/**
 * @var areaHasCategory $categories
 * 
 * @ORM\OneToMany(targetEntity="areaHasCategory", mappedBy="area", cascade={"ALL"})"
 */    
private $categories;

实体areaHasCategory

/**
 * @var area $area 
 * 
 * @ORM\Id 
 * @ORM\ManyToOne(targetEntity="area", inversedBy="categories")
 * @ORM\JoinColumn(name="pkfkArea", referencedColumnName="pkId", nullable=false) 
 */
private $area;

/**
* @var category $category
*
* @ORM\Id
* @ORM\ManyToOne(targetEntity="category", inversedBy="areas")
* @ORM\JoinColumn(name="pkFkCategory", referencedColumnName="pkId", nullable=false)
*/
private $category;

实体类别

/**
* @var areaHasCategory $areas
* 
* @ORM\OneToMany(targetEntity="areaHaCategory", mappedBy="category", cascade={"ALL"})"
*/
private $areas;

当我从控制器中的数据库中读取区域时,类别的arrayCollection为空。 我用夹具保存了数据。 分析器显示所有选择语句,当我除了从类别表中读取数据的查询时,一切都很好。 但$ area-> getCategories()为空。

有人知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

尽量不要将@ORM \ Id用于关系字段,并为主键添加单独的字段。