/**
  * Converts a comparison expression into the target query language output.
  *
  * @param \Doctrine\Common\Collections\Expr\Comparison $comparison
  *
  * @return mixed
  */
 public function walkComparison(Comparison $comparison)
 {
     $field = $comparison->getField();
     $value = $comparison->getValue()->getValue();
     // shortcut for walkValue()
     if (isset($this->classMetadata->associationMappings[$field]) && $value !== null && !is_object($value) && !in_array($comparison->getOperator(), array(Comparison::IN, Comparison::NIN))) {
         throw PersisterException::matchingAssocationFieldRequiresObject($this->classMetadata->name, $field);
     }
     return $this->persister->getSelectConditionStatementSQL($field, $value, null, $comparison->getOperator());
 }
 /**
  * @param string $field
  * @param mixed  $value
  * @param null   $assoc
  * @param null   $comparison
  *
  * @return string
  */
 public function getSelectConditionStatementSQL($field, $value, $assoc = null, $comparison = null)
 {
     $condition = parent::getSelectConditionStatementSQL($field, $value, $assoc, $comparison);
     $condition = preg_replace('/(\\.(@?\\b\\w+?\\b))/', '$2', $condition);
     return $condition;
 }
 /**
  * @group DDC-3056
  */
 public function testSelectConditionStatementWithMultipleValuesContainingNull()
 {
     $this->assertEquals('(t0.id IN (?) OR t0.id IS NULL)', $this->_persister->getSelectConditionStatementSQL('id', array(null)));
     $this->assertEquals('(t0.id IN (?) OR t0.id IS NULL)', $this->_persister->getSelectConditionStatementSQL('id', array(null, 123)));
     $this->assertEquals('(t0.id IN (?) OR t0.id IS NULL)', $this->_persister->getSelectConditionStatementSQL('id', array(123, null)));
 }
 /**
  * @expectedException Doctrine\ORM\ORMException
  */
 public function testSelectConditionStatementIn()
 {
     $this->_persister->getSelectConditionStatementSQL('admin1', array(), array(), Comparison::IN);
 }