У меня есть денормализованная таблица базы данных, содержащая сотрудников и отдел, в котором они работают:
EmployeeId EmployeeName DepartmentId DepartmentName
1 Bob 1 HR
2 Lisa 1 HR
...
DepartmentId
и EmployeeId
- составные первичные ключи. Я не могу изменить базу данных. Я хотел бы сопоставить это с двумя объектами:
@Entity
@Data
class Employee {
@Id
@Column("employeeId")
private int id;
@Column("employeeName")
private String name;
@ManyToOne
private Department department;
}
@Entity
@Data
class Department {
@Id
@Column("departmentId")
private int id;
@Column("departmentName")
private String name;
}
Но это не работает. Как я могу учесть это несоответствие импеданса между моей (объектной) моделью logi c и (физической) моделью базы данных? Я видел иерархический подход к решению этой проблемы, но я не верю, что это применимо к моему сценарию, поскольку Сотрудник и Отдел не имеют иерархических отношений.