symfony2本机查询为null,但sql查询有一个
有人知道为什么nativequery结果为空吗symfony2本机查询为null,但sql查询有一个,symfony,doctrine-orm,Symfony,Doctrine Orm,有人知道为什么nativequery结果为空吗 $rsm = new ResultSetMapping; $rsm->addEntityResult('AcmeTestBundle:event', 'e'); $rsm->addFieldResult('e', 'id', 'id'); $query = $this->getEntityManager()->createNativeQuery('SELECT id FROM event WHERE publickey C
$rsm = new ResultSetMapping;
$rsm->addEntityResult('AcmeTestBundle:event', 'e');
$rsm->addFieldResult('e', 'id', 'id');
$query = $this->getEntityManager()->createNativeQuery('SELECT id FROM event WHERE publickey COLLATE latin1_general_cs = ?', $rsm);
$query->setParameter(1, $eventkey);
return $query->getSingleResult();
当我直接在mysql中运行查询时,我得到了正确的结果。
这是从控制台创建的查询:
[2012-06-24 18:08:08] doctrine.DEBUG: SELECT id FROM event WHERE publickey COLLATE latin1_general_cs = ? (["key"]) [] []
我在另一个实体上使用相同的函数,得到了正确的结果。
有人有主意吗
谢谢大家! 您可能必须在结果映射中添加所有实体字段
实际上,只有id,doctrine无法为您的对象添加水合物。我只检查是否存在一行,不需要整个对象。相同的用法适用于其他实体:-/如果不需要水合作用,为什么不直接使用DBAL?我认为这是检查select语句区分大小写的唯一方法。对于其他任何事情,我都需要DBAL。你知道用doctrine2检查case sensitivie的另一个案例吗?也许这样就足够了:
$this->getEntityManager()->getConnection()->query('your query here')->fetch()