dtp791357 2014-02-17 11:32
浏览 76
已采纳

Symfony2和Doctrine - OneToMany只返回一个结果

I have tow entities, Submission and Submission History. When I am trying to get the SubmissionHistories from a specific submission, it returns only one, even if there are more entries.

Any idea why?

Here are the entities.

//Entity Submission

 /**
 * @ORM\OneToMany(targetEntity="SubmissionHistory", mappedBy="submission")
 */
protected $histories;

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

/**
 * Get histories
 *
 * @return Doctrine\Common\Collections\Collection 
 */
public function getHistories()
{
    return $this->histories;
}

Then,

//Entity SubmissionHistory


/**
 * @ORM\ManyToOne(targetEntity="Submission", inversedBy="histories")
 * @ORM\JoinColumn(name="hash_key", referencedColumnName="hash_key")
 */
protected $submission;

/**
 * Get submission
 *
 * @return SciForum\Version2Bundle\Entity\Submission 
 */
public function getSubmission()
{
    return $this->submission;
}
  • 写回答

1条回答 默认 最新

  • dpn68721 2014-02-17 11:54
    关注

    I found the problem:

    I setup the @Id to be the hash_key in the SubmissionHistory entity, which is wrong. By doing that, all results have been collapsed as if I grouped them by "Fields.id".

    By changing the Id to the id field, things works perfectly fine.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?