Doctrina MySql: encontrar si la variable dada es una propiedad de matriz IN

Tengo clase Tarea con la matriz de categories de enteros propiedad

 class Task{ /** * @var array * * @ORM\Column(name="categories", type="array", nullable=true) */ private $categories; } 

ahora, en el controlador, estoy intentando generar una consulta que compruebe si la variable de category id está en la matriz de categories de la tarea

  $qb = $this->getDoctrine()->getRepository('CoreBundle:Task')->createQueryBuilder('t'); $qb->where(':category IN (t.categories)') ->setParameter('category', $category); 

Esto me da error:

  [Syntax Error] line 0, col 140: Error: Expected Literal, got "t"; 

Según mi conocimiento, esto no es posible en Doctrine directamente, ya que la matriz no es técnicamente una matriz hasta que no se haya serializado en la base de datos.

La única forma que conozco para obtener el resultado que está buscando es tratar el valor de su base de datos como una cadena y buscar la cadena requerida en ese valor utilizando un comodín like .

 $qb = $this->getDoctrine()->getRepository('CoreBundle:Task')->createQueryBuilder('t'); $qb->where('t.categories LIKE :category') ->setParameter('category', '%'.$category.'%');