什么是JPQL`index()`函数的QueryDSL等价物?

时间:2015-12-08 14:40:06

标签: java querydsl

例如,如何将以下JPQL查询转换为QueryDSL?

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

其中F.p的类型为List<P>

1 个答案:

答案 0 :(得分:1)

您必须在ListPath中使用 get()方法来实现 index()函数。

就像一个例子,这是一个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类型