У меня есть составной ключ, и таблица сотрудников имеет отношения один ко многим с таблицей адресов.
@Embeddable
class EmployeeDetails {
@Column(name="empid")
Long empId;
@Column(name="empdept")
String empDept;
}
@Entity
class Employee {
@EmbeddedId
EmployeeDetails empDetails;
@OneToOne (mappedBy = "employee")
Address address;
}
@Entity
class Address {
String permanentAddrs;
@Id
@OneToOne
@JoinColumn(name = "empId", referencedcolumnname = "empDetails.empid")
Employee employee;
}
Что я хочу сделать, так это сделать empId EmployeeDetails
в качестве primaryKey в Address
сущности.
Но когда я делаю выше, я получаю следующее исключение:
org.hibernate.MappingException: не удалось найти столбец с логическим именем: empDetails.empid в org.hibernate.mapping.Table (employee) и связанных с ним надставных и вторичных таблицах
Является ли приведенное выше отображение правильным?