首页 > 解决方案 > 有一个包含所有内容的 Rest 存储库 json 和一个排除字段的 json

问题描述

我有两个实体:Book 和 Category 以及两者的存储库。在控制器中,我已经正确设置了方法,如下所示:

@RequestMapping(value="/books", method = RequestMethod.GET)
@CrossOrigin
public @ResponseBody List<Book> bookListRest() {    
    return (List<Book>) bookRepository.findAll();
}     

这显然显示了实体中不是@JsonIgnore 的所有书籍和每个字段。问题是,我需要:

怎么能做到这一点?在某些情况下,我不知何故需要以某种方式忽略@jsonignore。我是否应该创建一个新实体来扩展问题,并为此创建一个存储库?当然,这不是正确的方法。

标签: springrestspring-boot

解决方案


怎么用DTOs data transfer objects

您可以创建多个DTOs以在您的响应中使用它们API

DTO是一个pojo class自定义从您的返回数据entity

 public class BookWithoutCategoryDTO {
   private String name;
   private String authorName;
   .....
   /// and make setters and getters for them


 }

 public class BookWithCategoryDTO {
   private String name;
   private String authorName;
   private String category;
   .....
   /// and make setters and getters for them


 }

并创建您的自定义映射器以转换BookBookDTO


推荐阅读