Reputation: 496
I am developing an application using Spring
and Hibernate
. Below are my model bean classes:
Employee
@Entity
@Table(name="employee")
public class Employee {
@Id
@Column
@GeneratedValue
private int empid;
@Column
private String firstName;
@Column
private String lastName;
@Column
private String email;
@Column
private String password;
@Column
private boolean isAdmin;
@Column
private boolean isActive;
@Column
private boolean isLocked;
//getter and setter
PersonalDetails
public class PersonalDetails {
@Column
@Id
private int empid;
@Column
private String personalEmail;
@Column
private String mob;
@Column
private String permenantAdress;
@Column
private String currentAddress;
@Column
private String gender;
@Column
private String maritialStatus;
@OneToOne
@PrimaryKeyJoinColumn
@ForeignKey(name="empid")
private Employee employee;
//getter and setter
My tables get created automatically on the server startup but foreign key constraint in PersonalDetails
table is not getting set.
Did I missed anything here?
Upvotes: 1
Views: 43
Reputation: 26522
I think your @OneToOne
mapping should be as follows:
@MapsId
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "empid", referencedColumnName = "empid")
private Employee employee;
The cascade attribute is optional, but a good practice.
Upvotes: 1