@NoRepositoryBean
public class FolderCustomRepositoryImpl implements CustomRepository<Folder,Long>
{
private final JpaEntityInformation<Folder, ?> entityInformationCust;
private Class<Fascicolo> domainClassCust;
public FolderCustomRepositoryImpl(EntityManager entityManager) {
this.domainClassCust=Folder.class;
this.entityInformationCust = JpaEntityInformationSupport.getEntityInformation(domainClassCust, entityManager);
}
@Override
public Page<Fascicolo> findAll(EntityManager entityManager,Specification<Folder> spec, Pageable pageable, EntityGraphType entityGraphType,
String entityGraphName) {
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<Folder> query = builder.createQuery(domainClass);
Root<Folder> root = query.from(domainClass);
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
Predicate predicate = spec.toPredicate(root, query, builder);
query.where(predicate);
query.select(root);
query.orderBy(toOrders(sort, root, builder));
query.setHint(entityGraphType.getKey(), entityManager.getEntityGraph(entityGraphName));
query.setFirstResult(pageable.getOffset());
query.setMaxResults(pageable.getPageSize());
List<Folder> content = query.getResultList();
return new PageImpl<>(content, pageable, total);
}
}