为什么我会收到“请求方法”; post'不支持” ?我在Postman上获得错误代码405
controller:
@restcontroller
@requestmapping(@restcontroller @requestmapping(
“
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();
}
型号:
@data
@entity
@table(name =“ class_subject”)
public class classSubject {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int subject_id;
@Column(value = "prerequisite")
private String prerequisite;
@Column(value = "max_capacity")
private int max_capacity;
}
服务inpland inmpr:
@service: @service Public Class ClassServiceImpl实施ClassService {
@Override
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;
}
服务:
public Interface classService {
Classes saveClass(Classes classes);
List<Classes> getAllClasses();
Classes getClassByID(int classId);
Classes updateClass(Classes classes, int classId);
void deleteClass(int classId);
}
sql Queries:
create table class_subject(
subject_id INT NOT NULL,
prerequisite VARCHAR(30),
max_capacity INT NOT NULL,
PRIMARY KEY (subject_id)
);
Controller:
@RestController
@RequestMapping("/student_enrollment/class_subject")
public class 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();
}
model:
@Data
@Entity
@Table(name = "class_subject")
public class 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 impl:
@Service
public class ClassServiceImpl implements ClassService{
@Override
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;
}
Service:
public interface ClassService {
Classes saveClass(Classes classes);
List<Classes> getAllClasses();
Classes getClassByID(int classId);
Classes updateClass(Classes classes, int classId);
void deleteClass(int classId);
}
SQL Queries:
CREATE TABLE class_subject(
subject_id INT NOT NULL,
prerequisite VARCHAR(30),
max_capacity INT NOT NULL,
PRIMARY KEY (subject_id)
);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因为在Postman中,您使用的是PUT方法,而不是邮政方法。
Because in Postman you are using PUT method, not the POST method.
让我猜想您期望使用数据库序列自动生成“主题”。然后,您缺少两个注释
@GeneratedValue
和@SequenceGenerator
。因为“ objuct_id”不是可选的字段。这就是为什么您获得错误“字段'objuct_id'没有默认值”的原因。
要在“ objuct_id”字段和数据库序列之间创建一个关系,请使用以下内容。
您可以找到有关此主题的更多详细信息注释@ID和@generatedValue(策略= generationType.Identity)?为什么生成型是身份?
Let me guess you are expecting 'subject_id' to be auto-generate using database sequence. Then you are missing two annotations
@GeneratedValue
and@SequenceGenerator
.As 'subject_id' is not an optional field. That's why you getting the error "Field 'subject_id' doesn't have a default value".
To create a relationship between the 'subject_id' field and DB sequence use the following.
You can find more details on this topic what is the use of annotations @Id and @GeneratedValue(strategy = GenerationType.IDENTITY)? Why the generationtype is identity?