Hi
I have JpaAdvertiseCacheRepositoryImpl which is a custom repository implementation of SpringDataJpa. I need this for a complicated criteria.
I managed to do filter criterias via Predicates and pagination via TypedQuery.
My big issue now is Sorting! Could not find a way to do this in custom implementation of repo.
Anybody knows how to do that?
Tnx
CODE:
Code:public class JpaAdvertiseCacheRepositoryImpl implements JpaAdvertiseCacheRepositoryCustom { @PersistenceContext private EntityManager em; @Override public List<AdvertiseCacheJpa> findByFilter(FilterBuilder filter) { CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<AdvertiseCacheJpa> query = builder.createQuery(AdvertiseCacheJpa.class); Root<AdvertiseCacheJpa> from = query.from(AdvertiseCacheJpa.class); //apply filter <- applyFilter returns array of predicates Predicate[] predicates = applyFilter(filter, builder, from); if (predicates.length > 0) { //query.where(builder.and(predicates)); query.where(predicates); } //apply sorting <- THIS HAVE TO WORK SOON :) Sort sort = new Sort(Sort.Direction.ASC, "price"); //query.orderBy() //apply pagination TypedQuery typedQuery = em.createQuery(query); typedQuery = typedQuery.setFirstResult(filter.getOffset()); typedQuery = typedQuery.setMaxResults(filter.getMaxItemsPerPage()); return typedQuery.getResultList(); //return em.createQuery(query).getResultList(); }


Reply With Quote
