匹配我有三個doctrine2型號:的ArrayCollection ::有關係
Person
- $id
- $schoolClasses (ArrayCollection, OneToMany PersonSchoolClass)
SchoolClass
- $id
PersonSchoolClass (ManyToOne SchoolClass)
- $id
- $schoolClass
- $person
- $active
在我Person::addSchoolClass(SchoolClass $schoolClass)
,我想看看,是否已經有我的ArrayCollection<PersonSchoolClass>
一個SchoolClass
。
我用這個代碼:
/**
* @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);
得到超時(進程得到一分鐘左右後被殺)。
有沒有人有想法?
非常感謝!
你們是不是要檢查,如果你的'SchoolClass'存在於集合中添加它已經過嗎? – AlexP
@ALexP是的,正好 – Ueli