为什么我会收到“请求方法”; post'不支持” ?我在Postman上获得错误代码405

发布于 2025-02-11 14:00:52 字数 2296 浏览 0 评论 0原文

Postman错误

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)

);

Postman error

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那请放手 2025-02-18 14:00:52

因为在Postman中,您使用的是PUT方法,而不是邮政方法。

Because in Postman you are using PUT method, not the POST method.

风透绣罗衣 2025-02-18 14:00:52

让我猜想您期望使用数据库序列自动生成“主题”。然后,您缺少两个注释@GeneratedValue@SequenceGenerator

因为“ objuct_id”不是可选的字段。这就是为什么您获得错误“字段'objuct_id'没有默认值”的原因。

要在“ objuct_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(策略= 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.

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@SequenceGenerator(name="seq",sequenceName="sequence_in_db")        
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")   
private int subject_id;
  

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?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文