java - Spring Data Rest - 如何从页面中删除元素?

标签 java spring spring-data-rest querydsl

我的项目中有以下 REST Controller 方法

@RequestMapping(method = GET, value = "applications", produces = {MediaType.APPLICATION_JSON_VALUE})
public @ResponseBody
ResponseEntity<?> getApplications(@QuerydslPredicate(root = Application.class) Predicate predicate,
        PersistentEntityResourceAssembler resourceAssembler, Pageable page) {

    Page<ApplicationProjection> applications = appRepo.findAll(predicate, page).
            map(item -> projectionFactory.createProjection(ApplicationProjection.class, item));

    return new ResponseEntity<>(pagedResourcesAssembler.toResource(applications), HttpStatus.OK);

}

现在我想根据条件删除页面的一些元素。如何在 Spring Data Rest 中实现?

最佳答案

您不能直接从页面中删除元素。你可以做的是,从页面中获取内容,这将是一个列表,然后根据你的条件从列表中删除元素,然后创建一个具有修改后的列表和大小的新页面。

Page<ApplicationProjection> applications = appRepo.findAll(predicate, page).
                    map(item -> projectionFactory.createProjection(ApplicationProjection.class, item));

List<ApplicationProjection> appList = applications.getContent();
// logic to remove the elements as per your condition modifiedAppList
// create a new Page with the modified list and size
Page<ApplicationProjection> newApplicationsPage = new PageImpl<>(modifiedAppList, PageRequest.of(pageNo, pageSize),modifiedAppList.size());

关于java - Spring Data Rest - 如何从页面中删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51401929/

相关文章:

java - GlassFish 中的 mysql 连接器有问题还是只有我?

java - 此 URL 不支持 HTTP 方法 GET - Tomcat

java - Spring中ConstraintValidator如何添加错误码?

java - 自定义 Spring Data Rest @ManyToMany 关系处理

Spring Data Rest 自定义方法返回字符串

java - 使用 jxpath 按特定属性查找数组中的元素

java - 如何获取登录用户名?

java - 为什么 Maven + Spring Boot 会创建巨大的 jar 文件?

java - hibernate createSQLQuery批量插入

rest - 如何使用 spring 数据休息管理 REST API 版本控制?