私は 3 つの doctrine2 モデルを持っています:
Person
- $id
- $schoolClasses (ArrayCollection, OneToMany PersonSchoolClass)
SchoolClass
- $id
PersonSchoolClass (ManyToOne SchoolClass)
- $id
- $schoolClass
- $person
- $active
私Person::addSchoolClass(SchoolClass $schoolClass)
の に、すでに があるかどうかを確認しSchoolClass
たいArrayCollection<PersonSchoolClass>
。
私はこのコードを使用します:
/**
* @param SchoolClass $schoolClass
* @return Person
*/
public function addSchoolClass(SchoolClass $schoolClass)
{
$criteria = Criteria::create()
->where(Criteria::expr()->eq("schoolClass.id", $schoolClass->getId()))
->setFirstResult(0)
->setMaxResults(1);
$t = $this->getSchoolClasses()->matching($criteria);
if (!$t) {
$t = new PersonSchoolClass();
$t->setPerson($this);
$t->setSchoolClass($schoolClass);
$this->getSchoolClasses()->add($schoolClass);
}
$t->setActive();
return $this;
}
しかし、私は常にタイムアウトを取得し$this->getSchoolClasses()->matching($criteria);
ます(プロセスは1分ほど後に強制終了されます)。
誰にもアイデアがありますか?
どうもありがとうございました!