1

リポジトリ クラスで entityManager->createQuery() を使用すると問題が発生します。

public function findAllByDateAndUser( \DateTime $from, \DateTime $to, User $user ) {
    return $this->getEntityManager()->createQuery(
        'SELECT wu, a, ai
         FROM ArpanetCompanyWorkBundle:WorkerUsage wu
         JOIN ArpanetCompanyWorkBundle:AttendanceItem ai WITH ( wu.attendanceItem = ai )
         JOIN ArpanetCompanyWorkBundle:Attendance a WITH ( ai.attendance = a )
         WHERE wu.user = :userP
         AND WHERE a.date >= :fromP
         AND WHERE a.date <= :toP'
    )
    ->setParameter( 'userP', $user )
    ->setParameter( 'fromP', $from )
    ->setParameter( 'toP', $to )
    ->getResult();
}

エラーが発生しました:

[2/2] QueryException: [構文エラー] 行 0、列 344: エラー: リテラルが予期され、'WHERE' を取得しました

問題はどこだ?

クエリ ビルダーを使用して実行できることはわかっていますが、パフォーマンス上の理由から、1 つのデータベース クエリですべてのエンティティを取得する必要があります。

4

1 に答える 1

2

問題は、のAND WHERE代わりに使用することにありANDました。

于 2015-11-17T10:06:37.080 に答える