@Componentpublic interface Taskdao extends Pagingandsortingrepository<task, long>, Jpaspecificationexecutor <Task> {page<task> Findbyuserid (Long ID, pageable pagerequest); @Modifying @query ("Delete from task task where task.user.id=?1 ") void Deletebyuserid (Long id);}
Public page<task> getusertask (long userid, map<string, object> Searchparams, int pagenumber, int pagesize,string sorttype) {PageRequest Pagerequest = buildpagerequest (Pagenumber, pagesize, sorttype); Specification<task> spec = buildspecification (Userid, searchparams);return Taskdao.findall (spec, pagerequest);} /** * Create a paging request. */private pagerequest buildpagerequest (Int pagenumber, int pagzsize, string sorttype) {Sort sort = null;if ("Auto". Equals ( SortType)) {sort = new sort (direction.desc, "id");} else if ("title". Equals (SortType)) {sort = new sort (direction.asc, " Title ");} Return new pagerequest (Pagenumber - 1, pagzsize, sort);} /** * Create dynamic query condition combinations. */private specification<tAsk> buildspecification (long userid, map<string, object> searchparams) {Map<string, searchfilter> filters = searchfilter.parse (searchParams); Filters.put (" User.ID ", new searchfilter (" User.ID ", operator.eq, userid)); Specification<task> spec = dynamicspecifications.bysearchfilter (Filters.values (), Task.class); return spec;}
Spring Data JPA query (GO)