EJB3 mappedby?
What does 'mappedby' actually do. I have 2 entities Employee and Cubicle
with a bi directional OneToOne mapping. When I add or remove the mappedby
attribute it doesn't seem to have any effect? When I reverse engineer the
tables they still have the same relationship.
TIA
D1
@Entity
public class Cubicle implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="CUBICLE_ID")
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
private Employee residentEmployee;
@OneToOne(mappedBy = "assignedCubicle")
public Employee getResidentEmployee() {
return residentEmployee;
}
public void setResidentEmployee(Employee employee) {
this.residentEmployee = employee;
}
}
@Entity
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="EMPLOYEE_ID")
private Long id;
public Long getId() {
return id;
}
public Cubicle assignedCubicle;
@OneToOne
public Cubicle getAssignedCubicle() {
return assignedCubicle;
}
public void setAssignedCubicle(Cubicle cubicle) {
this.assignedCubicle = cubicle;
}
public void setId(Long id) {
this.id = id;
}
}
CREATE TABLE APP.EMPLOYEE (
EMPLOYEE_ID BIGINT GENERATED ALWAYS AS IDENTITY(START
WITH 1, INCREMENT BY 1) NOT NULL,
ASSIGNEDCUBICLE_CUBICLE_ID BIGINT,
CONSTRAINT SQL090228015516800 PRIMARY KEY(EMPLOYEE_ID)
)
GO
ALTER TABLE APP.EMPLOYEE
ADD CONSTRAINT MPLYSSGNDCBCLCBCLD
FOREIGN KEY(ASSIGNEDCUBICLE_CUBICLE_ID)
REFERENCES APP.CUBICLE(CUBICLE_ID)
GO
CREATE TABLE APP.CUBICLE (
CUBICLE_ID BIGINT GENERATED ALWAYS AS IDENTITY(START
WITH 1, INCREMENT BY 1) NOT NULL,
RESIDENTEMPLOYEE_EMPLOYEE_ID BIGINT,
CONSTRAINT SQL090228015517160 PRIMARY KEY(CUBICLE_ID)
)
GO
ALTER TABLE APP.CUBICLE
ADD CONSTRAINT CBCLRSDNTMPLYMPLYD
FOREIGN KEY(RESIDENTEMPLOYEE_EMPLOYEE_ID)
REFERENCES APP.EMPLOYEE(EMPLOYEE_ID)
GO