2015-12-08 73 views
1

例如,如何將以下JPQL查詢轉換爲QueryDSL?什麼是JPQL`index()`函數的QueryDSL等價物?

SELECT p 
FROM F f 
JOIN f.p p 
WHERE index(p)=0 

其中F.pList<P>類型。

+0

我在https://bugs.launchpad.net/querydsl/+bug/765710看到了一個提案,但可能還沒有實現... – snorbi

+1

其實它已經根據http://bugs.launchpad.net/querydsl/+bug/765710門票在2.2.0-beta4中修復 –

回答

1

你必須使用ListPath的get()方法它實現了指數()功能。

只是作爲一個例子,這裏是一個JPA查詢(QueryDSL 4.0.6),它得到一個目錄的實體,其第二子類(指數1)給予名稱:

public Catalog findSecondCatalogChildCategoryByName(String Name) { 
    return new JPAQueryFactory(entityManager) 
      .selectFrom(catalog) 
      .where(
        catalog.rootCategories.get(1).name.eq(name) 
      ).fetchOne(); 
} 

注意:在這個例子中, rootCategories字段有java.util.List類型

相關問題