Форумы портала PHP.SU » » Работа с СУБД » Doctrine2 + sqlite:in_memory: + oneToMany = Fail?!

Страниц (1): [1]
 

1. hdg700 - 19 Июля, 2011 - 06:21:16 - перейти к сообщению
Всем привет.

Имеется проект на Zend_Framework + Doctrine2.
База на mysql.
Для ускорения unit-тестов используется sqlite in-memory база.

К примеру, есть две модельки "Вопрос" и "Ответ".

CODE (php):
скопировать код в буфер обмена
  1.  
  2. /**
  3.  * Poll_Model_Question
  4.  *
  5.  * @Table(name="poll__model__question")
  6.  * @Entity(repositoryClass="Poll_Model_QuestionTable")
  7.  */
  8. class Poll_Model_Question
  9. {
  10.     ...
  11.  
  12.     /**
  13.      * @OneToMany(targetEntity="Poll_Model_Answer", mappedBy="question")
  14.      */
  15.     private $answers;
  16. }
  17.  


CODE (php):
скопировать код в буфер обмена
  1.  
  2. /**
  3.  * Poll_Model_Answer
  4.  *
  5.  * @Table(name="poll__model__answer")
  6.  * @Entity(repositoryClass="Poll_Model_AnswerTable")
  7.  */
  8. class Poll_Model_Answer
  9. {
  10.     ...
  11.     /**
  12.      * @ManyToOne(targetEntity="Poll_Model_Question", inversedBy="answers")
  13.      * @JoinColumns({
  14.      *   @JoinColumn(name="question_id", referencedColumnName="id", onDelete="CASCADE")
  15.      * })
  16.      */
  17.     private $question;
  18.  
  19. }
  20.  


В фикстурах есть вопрос и десять вариантов ответов к нему.
Делаем:
CODE (php):
скопировать код в буфер обмена
  1.  
  2. $answers = $question->answers;
  3. var_dump($answers);
  4.  


На сайте выводится коллекция из десяти ответов, а вот в тестах возвращается массив, содержащий только первый добавленный ответ, хотя если сделать прямой запрос в таблицу ответов, то доступны все десять и все ссылаются на этот вопрос.
Прошу натолкнуть на мысль.. Либо это баг второй доктрины при работе с sqlite in-memory, либо что-то с самой sqlite, либо еще что-то... Улыбка

UPD Прогнал тесты на mysql. Та же ошибка. Значит, проблема не в sqlite.

 

Powered by ExBB FM 1.0 RC1