OneToMany与Symfony2和Doctrine的关系

I keep getting a null result when I try to retrieve the many side of my bi-directional relation.

In My Tool Entity, I have

public function __construct()
{
    $this->instances = new ArrayCollection;
}


/**
 * @var integer
 */
private $toolId;


/* @var ArrayCollection things
*
* @ORM\OneToMany(targetEntity="Instance", mappedBy="tool")
*/
private $instances;




public function getInstances(){
    print "In the get";
    var_dump($this->instances);
    return $this->instances;
}

Then on the other side, I have

class Instance {
/**
 * @var integer
 */
private $instanceId;

/**
 * @var string
 */
private $serialnumber;

/**
 * @var boolean
 */
private $inServiceFlag = '1';

 /**
 * @ORM\ManyToOne(targetEntity="Tool", inversedBy="instances")
 * @ORM\JoinColumn(name="tool_id", referencedColumnName="tool_id")
 */
private $tool;

When I view an instance, I can see the tool, but when I view the tool I can see an array of the instances. I always get a null value.

What am I missing?

Are you sure that your @JoinColumn annotation is correct?

In the annotation, I see referencedColumnName="tool_id", but on your Tool entity, I see private $toolId;

Everything else looks correct to me, according to the docs (assuming these entities are in the same namespace, of course)