我是java spring Rest的新手,我一直坚持使用http请求方法get和put,特别是下面的代码。 我已经成功上传带有图像文件的实体(事件)。但是,我无法在不遇到以下错误的情况下执行 get 方法。 我更多地考虑了我的控制器的 get 方法,它缺少一些东西,因为我得到了一个结果,但内容类型很奇怪。
邮差
获取http://localhost:8080/stem/events 错误:已达到最大响应大小
浏览器
[{"id":1,"title":"Indoor luchtkwaliteit = Frisse kop","description":"Met het meettoestel Frisse Kop gaan we aan de slag。We ontwerpen en bouwen dit helemaal zelf!我们 leren over 3D- ontwerpen en gaan hier zelf mee aan de slag.","startDate":null,"endDate":null,"startHour":null,"endHour":null,"image":{"id":1,"fileName" :"frissekop.jpg","fileType":"image/jpeg","content":"/9j/4AAQSkZJRgABAQEASABIAAD/4S3eRXhpZgAATU0AKgAAAAgADAEPAAIAAAAGAAAAngEQAAIAAAAQAAAApAESAAMAAAABAAEAAAEaAAUAAAABAAAAtAEbAAUAAAABAAAAvAEoAAMAAAABAAIAAAEyAAIAAAAUAAAAxAE7AAIAAAABA AAAAAITAAMAAAAAAAAAAAIKYAAIAAAABAAAAAIdpAAQAAAABAAAA2IglAAQAAAABAAAgTAAAIGBDYW5vbgBDYW5vbiBFT1MgMjAwMEQAAAAASAAAAAEAAABIAAAAATIwMjA6MDg6MjEgMTM6MDI6MTcAACeCmgAFAAAAAQAAArKCnQAFAAAAAQAAArqIIgADAAAAAQACAACIJwADAAAAA QMgAACIMAADAAAAAQACAACIMgAEAAAAAQAAAyCQAAAHAAAABDAyMzCQAwACAAAAFAAAAsKQBAACAAAAFAAAAtaRAQAHAAAABAECAwCSAQAKAAAAAQAA
有人可以帮我根据Image和Event的关系实现Get和update吗?
@Entity
@Table(name = "events")
@Data
public class Event {
@Id
@GeneratedValue
private Integer id;
private String title;
@Lob
private String description;
@OneToMany(mappedBy = "event",cascade = CascadeType.ALL,
orphanRemoval = true)
private List<Image> images=new ArrayList<>();
public void addImage(Image image) {
images.add(image);
image.setEvent(this);
}
public void removeImage(Image image) {
images.remove(image);
image.setEvent(null);
}
}
} ```
@Entity
@Getter
@Setter
@NoArgsConstructor
@Entity
@Table(name = "images")
public class Image {
@Id
@GeneratedValue
private Integer id;
private String fileName;
private String fileType;
@Lob
private byte []content;
@ManyToOne(fetch = FetchType.LAZY)
private Event event;
}
// Controller
@RestController
@CrossOrigin
public class EventController {
@Autowired
private EventService eventService;
@Autowired
private ImageService imageService;
@GetMapping("/events")
public List<Event> getAllEvents() {
return eventService.getAllEvents();
}
@GetMapping("/events/{id}")
public Event getEvent(@PathVariable Integer id) {
return eventService.getEvent(id);
}
@PostMapping("/events")
public void addEvent(@RequestPart("event") Event event, @RequestPart("file")MultipartFile file) {
imageService.uploadImage(event,file);
// eventService.addEvent(event);
}
@PutMapping("/events/{id}")
public void updateEvent(@PathVariable Integer id, @RequestPart Event event) {
eventService.updateEvent(id, event);
}
@DeleteMapping("/events/{id}")
public void removeEvent(@PathVariable Integer id) {
eventService.removeEvent(id);
}
这是一个
Postman
特定错误,它是由于设置中存在 Max Response Size
限制而生成的。默认情况下为 50 MB。这意味着,如果响应大小超过 50 MB,Postman 将使请求失败。
由于您正在接收
JSON
数据以及文件部分或文件 base64 string
(base64
通常比实际文件大 30% 左右,您可能还想检查一下),更有可能抱怨响应大小超过限制,因为默认限制为 50 MB,文件可能大于该限制。
您可以通过进入“常规”下的“邮递员设置”并将
Max response size in MB
的默认值修改为所需的值(以 MB 为单位)来更改所需的值。或者将其设置为 0
,以防您想下载任何大小的响应。