首页 > 解决方案 > 如何使用 querydsl 获取子字段?

问题描述

如何使用 querydsl 获取子字段?

此变体返回具有所有空字段的人员。

 QX x = QX.x;
        BooleanBuilder booleanBuilder = new BooleanBuilder(predicate);
        booleanBuilder
                .and(x.isDeleted.isFalse())
                .and(x.isActive.isTrue());
        JPAQuery<X> query = new JPAQueryFactory(entityManager)
                .select(x)
                .from(x)
                .leftJoin(x.createdBy).fetchJoin()
                .leftJoin(x.createdBy.person, QPerson.person).fetchJoin()
                .on(x.createdBy.person.id.eq(QPerson.person.id))
                .offset(pageable.getOffset())
                .limit(pageable.getPageSize())
                .where(booleanBuilder.and(predicate));
        JPQLQuery<X> countQuery = ((AbstractJPAQuery) query).clone(entityManager);

        return PageableExecutionUtils.getPage(query.clone(entityManager).fetch(),
                pageable, countQuery::fetchCount);

标签: javahibernatejpaquerydsl

解决方案


推荐阅读