QueryBuilder的陈旧结果?

时间:2014-05-02 10:56:50

标签: php doctrine-orm

我试图用Doctrine的QueryBuilder调试一个非常奇怪的问题。我做的事情看起来大致如下:

$entity->setDeleted(true);
$em->persist($entity);
$em->flush(entity);

//the filter basically appends 'deleted = 0' to the query
$em->getFilters()->enable('softdelete');
$qb = $em->createQueryBuilder()
   ->from($entity_class, 'c')
   ->where('c.id = ?0')
   ->setParameter(0, $entity->getId())
   ->select("COUNT(c)");
$result = intval($qb->getQuery()->getSingleScalarResult());

我期望发生的事情当然是$ result为零,但相反,我得到1.如果我手动检查数据库,则值似乎写得正确(即它表示" 1&#34 ;不是" 0")

所以我尝试启用Doctrine的SQLEchoLogger来查看执行了哪种语句,奇怪的是:当启用记录器时,结果为零,如预期的那样。所以我想知道:我怎么能调试这个问题,它会是什么? DB驱动程序是pdo_mysql(带有MyISAM表),据我所知,我没有启用缓存。

0 个答案:

没有答案