保存时弹簧oneToOne关系未设置FK



这是我的代码:

@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
@OneToOne(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.EAGER, optional = false)
private Employee employee;
public User() {
}
//SETTERS AND GETER

}
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "user_id")
private User user;
public Employee() {
}

//SETTERS AND GETER
}

在我的服务上,我正在尝试这样的东西:

User user = new User();
user.setUsername("my_username");
user.setPassword("12345");
Employee employee = new Employee();
employee.setName("My Name");
employee.setBirth(LocalDate.now());
user.setEmployee(employee);
userService.save(user);

应用程序上没有任何错误,也没有任何问题,但在我的数据库中,user_id列是空的,我该怎么做才能用user_id自动设置user_id?提前感谢!

正如hibernate文档中所述:

每当形成双向关联时,应用程序开发人员必须确保双方始终同步

您使用双向@OneToOne,因此,您应该同步关联的两侧

User user = new User();
user.setUsername("my_username");
user.setPassword("12345");
Employee employee = new Employee();
employee.setName("My Name");
employee.setBirth(LocalDate.now());
// make both side  of bidirectional @OneToOne in-sync
user.setEmployee(employee);
employee.setUser(user);
userService.save(user);

最新更新