public List<T> findAll(UserInfo userInfo, F form) { logger.infoCode("I0001"); // 必須 Specification<T> whereUserKey = new Specification<T>() { @Override public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder cb) { return cb.equal(root.get("usUserTbl").get("userKey"), userInfo.getTargetUserKey()); } }; // 言語 Specification<T> whereLanguage = StringUtil.isNull(form.getLanguage()) ? null : new Specification<T>() { @Override public Predicate toPredicate( Root<T> root, CriteriaQuery<?> query, CriteriaBuilder cb) { return cb.equal(root.get("paperLanguage"), form.getLanguage()); } }; List<T> list = (List<T>) repository.findAll( (Specification<T>) Specifications.where(whereUserKey).and(whereLanguage)); logger.infoCode("I0002"); return list; }
/** * Handles listing of shallow metric representations. Method still has to be overridden (and * annotated) in subclasses because of the way {@link PagedResourcesAssemblerArgumentResolver} * works. */ protected PagedResources<MetricResource> list( Pageable pageable, PagedResourcesAssembler<M> pagedAssembler) { /* Page */ Iterable<M> metrics = repository.findAll(/* pageable */ ); // Ok for now until we use PagingAndSortingRepo as we know we have lists Page<M> page = new PageImpl<M>((List<M>) metrics); return pagedAssembler.toResource(page, shallowResourceAssembler); }
public List<F> findAllProfileView(UserInfo userInfo, String[] publicFlags) { logger.infoCode("I0001"); // Specification<T> whereUserKey = new Specification<T>() { @Override public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder cb) { return cb.equal(root.get("usUserTbl").get("userKey"), userInfo.getTargetUserKey()); } }; // 取得条件: Specification<T> wherePublicFlags = publicFlags == null ? null : new Specification<T>() { @Override public Predicate toPredicate( Root<T> root, CriteriaQuery<?> query, CriteriaBuilder cb) { Predicate predicate = cb.conjunction(); for (int i = 0; i < publicFlags.length; i++) { String keyword = publicFlags[i]; if (i == 0) { predicate = cb.and(predicate, cb.equal(root.get("publicFlag"), keyword)); } else { predicate = cb.or(predicate, cb.equal(root.get("publicFlag"), keyword)); } } return predicate; } }; List<T> list = (List<T>) repository.findAll( (Specification<T>) Specifications.where(whereUserKey).and(wherePublicFlags)); logger.infoCode("I0002"); return getDtoList(list); }