Java 保存时Spring-oneToOne关系未设置FK
这是我的代码:Java 保存时Spring-oneToOne关系未设置FK,java,spring,spring-boot,hibernate,jpa,Java,Spring,Spring Boot,Hibernate,Jpa,这是我的代码: @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String password; @OneToOne(mappedBy = "user", cascade = CascadeType.AL
@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\u id列是空的,我该如何使用user id自动设置user\u id?提前谢谢 正如hibernate中所述: 每当形成双向关联时,应用程序开发人员必须确保双方始终同步 您使用双向
@OneToOne
,因此,您应该同步关联的两侧:
User User=新用户();
user.setUsername(“我的用户名”);
user.setPassword(“12345”);
员工=新员工();
employee.setName(“我的名字”);
employee.setBirth(LocalDate.now());
//使双向@OneToOne的两侧同步
user.setEmployee(employee);
employee.setUser(用户);
userService.save(用户);
您的代码应该可以工作。您确定您的数据库ID设置为自动递增(或顺序)吗?