У меня есть 2 простых объекта: студент и класс.Я хочу отправить ученика, где я указываю класс, к которому он принадлежит, но я застрял в отображении гибернации.
ClassModel.class
@Entity
@Table(name = "class" )
public class ClassModel implements Serializable {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@NotEmpty
@Size(max = 20)
@Column(name = "name")
private String name;
@Column(name = "tables")
private int tables;
@Column(name = "chairs")
private int chairs;
@Column(name = "teacher")
private String teacher;
(getters + setters)
StudentModel
@Entity
@Table(name = "student")
public class StudentModel implements Serializable {
@Id
@Column(name = "student_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int student_id;
@NotEmpty
@Column(name = "name")
@Size(max = 50)
private String name;
@Column(name = "age")
private int age;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id")
private ClassModel classModel;
(getters + setters)
}
StudentController.java
...
@Autowired
private StudentService studentService;
@Autowired
private ClassService classService;
@PostMapping(value = "/save")
public StudentModel save(@RequestBody StudentModel studentModel){
ClassModel classModel = classService.findById(studentModel.getClassId()).get();
studentModel.setClassModel(classModel);
return studentService.save(studentModel);
}
...
Но когда я делаю запрос от Почтальона со следующим телом:
{
"name": "some name",
"age": 12,
"class_id": 1
}
В hibernate появляется следующая ошибка:
Column 'class_id' cannot be null
Где ошибка в моем отображении hibernate?