簡體   English   中英

為什么我收到“不支持請求方法 'POST'”? 我在郵遞員上收到錯誤代碼 405

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM