2016-08-28 4 views
0

作業中のアプリケーションでは、ネイティブSQLクエリを使用してManyToManyエンティティの関係からアイテムを取得します。そのクエリを翻訳しようとする試みは、無数のエラーメッセージで終わります。家計のエンティティには、ReasonとManyToMany関係があります。両方のエンティティ&の関係が適切に定義されています。 .../Entityに結合テーブル(household_reason)が定義されていません。私を見逃している部分は、Contactエンティティに参加する方法です.Contentエンティティには、OneToMany関係があります。ManyToMany DQLがSQLを使用していて、OneToManyにアクセスしています

作業SQL:手始めに

select distinct r.reason 
    from reason r 
    join household_reason hr on hr.reason_id = r.id 
    join household h on h.id = hr.household_id 
    join contact c on c.household_id = h.id... 

は、ここに理由リポジトリ内のクエリビルダの始まりです:

$query = $this->createQueryBuilder('r')->select('distinct r.reason') 
    ->innerJoin('r.households', 'h') 

今複数householdsがあることを、私は関係を指定する方法単数世帯に?

答えて

0

はしばらく時間がかかったが、次の作品:

$query = $this->createQueryBuilder('r')->select('distinct r.reason') 
     ->innerJoin('r.households', 'h') 
     ->innerJoin('TruckeeProjectmanaBundle:Contact', 'c', 'WITH c.household = h.household') 
     ->where('c.contactDate >= :startDate') 
     ->andWhere('c.contactDate <= :endDate') 
     ->andWhere('r.enabled = TRUE') 
     ->orderBy('r.id') 
     ->setParameters($dateCriteria) 
     ->getQuery() 
     ->getResult(); 
関連する問題