【发布时间】:2019-08-30 01:38:14
【问题描述】:
我有 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)
学生模型
@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);
}
...
但是当我使用以下正文向 Postman 发出请求时:
{
"name": "some name",
"age": 12,
"class_id": 1
}
我从休眠中收到以下错误:
Column 'class_id' cannot be null
我的休眠映射哪里出错了?
【问题讨论】:
标签: java json spring spring-data-jpa spring-data