[英]Why am I receiving a "Request method 'POST' not supported" ? I get error code 405 on postman
控制器:
@RestController
@RequestMapping("/student_enrollment/class_subject")
公共類 ClassController {
private ClassService classService;
public ClassController(ClassService classService) {
super();
this.classService = classService;
}
@PostMapping()
public ResponseEntity<Classes> saveClass(@RequestBody Classes classes) {
return new ResponseEntity<Classes>(classService.saveClass(classes),
HttpStatus.CREATED);
}
@GetMapping
public List<Classes> getAllClasses() {
return classService.getAllClasses();
}
模型:
@數據
@實體
@Table(name = "class_subject")
公共類 ClassSubject {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int subject_id;
@Column(value = "prerequisite")
private String prerequisite;
@Column(value = "max_capacity")
private int max_capacity;
}
服務內涵:
@Service 公共類 ClassServiceImpl 實現 ClassService{
@覆蓋
public ClassSubject updateClassSubject(ClassSubject classSubject, int classSubjectId) {
ClassSubject existingClassSubject = classSubjectRepository.findById(classSubjectId).orElseThrow(() -> new ResourceNotFoundException("ClassSubject", "classSubjectId", classSubjectId));
existingClassSubject.setSubject_id(classSubject.getSubject_id());
existingClassSubject.setPrerequisite(classSubject.getPrerequisite());
existingClassSubject.setMax_capacity(classSubject.getMax_capacity());
classSubjectRepository.save(existingClassSubject);
return existingClassSubject;
}
服務:
公共接口類服務 {
Classes saveClass(Classes classes);
List<Classes> getAllClasses();
Classes getClassByID(int classId);
Classes updateClass(Classes classes, int classId);
void deleteClass(int classId);
}
SQL 查詢:
創建表 class_subject(
subject_id INT NOT NULL,
prerequisite VARCHAR(30),
max_capacity INT NOT NULL,
PRIMARY KEY (subject_id)
);
因為在 Postman 中您使用的是 PUT 方法,而不是 POST 方法。
讓我猜你期待“subject_id”使用數據庫序列自動生成。 然后您缺少兩個注釋@GeneratedValue
和@SequenceGenerator
。
因為“subject_id”不是可選字段。 這就是您收到錯誤“字段'subject_id'沒有默認值”的原因。
要在“subject_id”字段和數據庫序列之間創建關系,請使用以下命令。
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@SequenceGenerator(name="seq",sequenceName="sequence_in_db")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")
private int subject_id;
您可以找到有關此主題的更多詳細信息@Id 和 @GeneratedValue(strategy = GenerationType.IDENTITY) 注釋的用途是什么? 為什么世代類型是身份?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.