jpa 中的联表查询
ConstructorExpression<SafeOccupational> subject = Projections.constructor(SafeOccupational.class, safeOccupational.id,
safeOccupational.name, enterprise.id, enterprise.entName);
JPAQuery<SafeOccupational> jpaQuery = queryFactory.select(subject)
.from(safeOccupational).innerJoin(enterprise).on(safeOccupational.ownEntId.eq(enterprise.id))
.offset(pageParam.getPageIndex()).limit(pageParam.getPageSize());
List<com.querydsl.core.types.Predicate> predicates = new LinkedList<>();
predicates.add(safeOccupational.dataState.eq(DataStateEnum.NORMAL));
if (EntTypeEnum.parkEnt.equals(ShiroUtil.getEntType())) {
predicates.add(safeOccupational.ownEntId.eq(ShiroUtil.getEntId()));
} else if (EntTypeEnum.parkManage.equals(ShiroUtil.getEntType())) {
List<SysEnterprise> enterprises = dataService.getSysEnterpriseRepository().findAllByOwnEntIdAndDataState(ShiroUtil.getEntId(), DataStateEnum.NORMAL);
List<String> ids = enterprises.stream().map(SysEnterprise::getId).distinct().collect(Collectors.toList());
predicates.add(safeOccupational.ownEntId.in(ids));
}
if (!StringUtils.isEmpty(entity.getName())) {
predicates.add(safeOccupational.name.like( "%" + entity.getName() + "%"));
}
if (!StringUtils.isEmpty(entity.getOwnEntName())) {
predicates.add(enterprise.entName.like( "%" + entity.getOwnEntName() + "%"));
}
jpaQuery.where(predicates.toArray(new com.querydsl.core.types.Predicate[0]));
PageImpl<SafeOccupational> safeOccupationalPage = new PageImpl<SafeOccupational>(jpaQuery.fetch(), pageParam.getPageable(),
jpaQuery.fetchCount());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)