如何解决Hibernate SQL @JoinColumn生成null
我正在使用@JoinColumn Annotation来联接两个表,但是链接结果为空值。我究竟做错了什么?有什么方法可以调试链接过程?也许与sql数据库有关,我的意思是没有链接可以发生?您可能会说我在代码方面已经尝试了所有方法,所以我不确定代码是否可能是问题。我也使用Postman发送JSON字符串,也许问题出在那,但这只是猜测。请帮忙。
@Entity
@Data
public class Operator {
@Id
@GeneratedValue
private int idOperator;
@Column
private String login;
@Column
private String password;
@OnetoOne(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
@JoinColumn(name= "id_employee")
private Employee employee;
@Entity
@Data
public class Employee {
@Id
@GeneratedValue
private int id_employee;
@Column
private String firstName;
@Column
private String lastName;
@OnetoOne(mappedBy = "employee")
private Operator operator;
}
@RestController
@requiredArgsConstructor
public class EmployeeController {
private final EmployeeRepository employeeRepository;
@PostMapping("/employees")
public Employee newEmployee(@RequestBody Employee newEmployee) {
return employeeRepository.save(newEmployee);
}
@RestController
@requiredArgsConstructor
public class OperatorController {
private final OperatorRepositry operatorRepositry;
@PostMapping("/operators")
public Operator newOperator(@RequestBody Operator newOperator) {
return operatorRepositry.save(newOperator);
}
The debug result:
2020-10-12 11:40:19.467 DEBUG 83385 --- [nio-8080-exec-2] org.hibernate.sql : insert into operator (id_employee,login,password,id_operator) values (?,?,?)
2020-10-12 11:40:19.470 TRACE 83385 --- [nio-8080-exec-2] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [INTEGER] - [null]
2020-10-12 11:40:19.471 TRACE 83385 --- [nio-8080-exec-2] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [VARCHAR] - [dbuser]
2020-10-12 11:40:19.472 TRACE 83385 --- [nio-8080-exec-2] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [VARCHAR] - [skdbpassword]
2020-10-12 11:40:19.472 TRACE 83385 --- [nio-8080-exec-2] o.h.type.descriptor.sql.BasicBinder : binding parameter [4] as [INTEGER] - [7]
select operator0_.id_operator as id_opera1_1_1_,operator0_.id_employee as id_emplo4_1_1_,operator0_.login as login2_1_1_,operator0_.password as password3_1_1_,employee1_.id_employee as id_emplo1_0_0_,employee1_.first_name as first_na2_0_0_,employee1_.last_name as last_nam3_0_0_ from operator operator0_ left outer join employee employee1_ on operator0_.id_employee=employee1_.id_employee where operator0_.id_operator=?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。