例如,如何将以下JPQL查询转换为QueryDSL?
SELECT p
FROM F f
JOIN f.p p
WHERE index(p)=0
其中F.p
的类型为List<P>
。
答案 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类型