_em->createQuery($dql); $query->setQueryCacheDriver(new ArrayCache()); $query->setParameter('field', 'test', 'DDC2224Type'); $this->assertStringEndsWith('.field = FUNCTION(?)', $query->getSQL()); return $query; } /** * @depends testIssue */ public function testCacheMissWhenTypeChanges(Query $query) { $query->setParameter('field', 'test', 'string'); $this->assertStringEndsWith('.field = ?', $query->getSQL()); } } class DDC2224Type extends Type { /** * {@inheritdoc} */ public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform) { return $platform->getVarcharTypeDeclarationSQL($fieldDeclaration); } public function getName() { return 'DDC2224Type'; } /** * {@inheritdoc} */ public function canRequireSQLConversion() { return true; } /** * {@inheritdoc} */ public function convertToDatabaseValueSQL($sqlExpr, AbstractPlatform $platform) { return sprintf('FUNCTION(%s)', $sqlExpr); } } /** * @Entity */ class DDC2224Entity { /** * @Id @GeneratedValue @Column(type="integer") */ public $id; /** * @Column(type="DDC2224Type") */ public $field; }