学说2命令不起作用

时间:2012-06-18 15:45:42

标签: php symfony doctrine-orm

我有以下简单查询:

$qb = $em->createQueryBuilder();
$qb
    ->select('o')
    ->from('LibraryBundle:Publication', 'o')
    ;

    $qb
        ->join('o.translations', 't');

$qb
    ->orderBy('o.published_at', 'DESC')
    ->setMaxResults($count);

没有加入一切正常,但加入顺序不起作用,我得到了第一个记录,而不是最后一个。 出版物中的关系:

/**
 * @ORM\OneToMany(
 *     targetEntity="PublicationTranslation",
 *     mappedBy="translatable",
 *     cascade={"persist"}
 * )
 */
private $translations;

我做错了什么?

UPD :这个DQL生成以下SQL查询,但是如果我在phpMyAdmin命令中尝试这个也错了:

SELECT
    p0_.id AS id0,
    /* a number of fields */
    p1_.translatable_id AS translatable_id20
FROM publications p0_
INNER JOIN publication_translation p1_ ON p0_.id = p1_.translatable_id
ORDER BY p0_.published_at DESC LIMIT 3

UPD2 :我用这段代码解决了我的问题,但我仍然不明白为什么按published_at排序不起作用:

$qb = $em->createQueryBuilder();
$qb
     ->from('ItopLibraryBundle:Publication', 'o')
;

$qb
     ->select('o, t')
     ->join('o.translations', 't');

$qb
     ->orderBy('o.id', 'DESC')
     ->groupBy('o.id')
     ->setMaxResults($count);

0 个答案:

没有答案