레거시 Oracle 데이터베이스를 최대 절전 모드로 매핑하는 데 문제가 있습니다. 좀 더 구체적으로 말하면 올바른 상속 매핑을 사용할 수 없습니다. 내가 함께 해왔 던 예제는 Person-Employee-Relationship입니다. 우리의 데이터베이스에서 테이블은 분리되어 있으므로 유일한 매핑 전략이 합류하게됩니다. 이제 문제는 Employee의 PK는 EmployeeId와 CompanyId로 구성되며 PersonId는 일반 FK만으로 구성됩니다. 현재 실행중인 시스템을 망쳐 놓지 않고도이를 변경할 방법이 없습니다.최대 절전 모드 : 레거시 데이터베이스 상속 매핑
@Entity
@Table (name = "personas")
@Inheritance (strategy = InheritanceType.JOINED)
public class Person {
private String personId;
private boolean physical;
private String name;
private String fantasyName;
private char gender;
@Id
@Column (name = "cod_persona")
public String getPersonId() {
return personId;
}
public void setPersonId(String personId) {
this.personId = personId;
}
//rest of setters and getters
}
Employee.class
Person.class : 새로운 직원 또는 사람 을 만들거나 삭제 : 이미 작동 무엇
@Entity
@Table (name = "rh_empleados")
@PrimaryKeyJoinColumn (name = "cod_persona")
public class Employee extends Person {
private Company company;
private String employeeId;
private Integer finalSalary;
private Branch branch;
@Basic (optional = false)
@ManyToOne
@JoinColumn (name = "cod_empresa")
public Company getCompany() {
return company;
}
public void setCompany(Company company) {
this.company = company;
}
@Basic (optional = false)
@Column (name = "cod_empleado")
public String getEmployeeId() {
return employeeId;
}
public void setEmployeeId(String employeeId) {
this.employeeId = employeeId;
}
//rest of setters and getters
}
여기 은 사람과 직원에 대한 현재 코드 효과가없는 것 : 기존 직원이나 사람을 선택하면 예외가 발생하지 않거나 아무 것도 반환되지 않습니다.
상속 계층 구조에없는 다른 엔터티가 완벽하게 작동하기 때문에 상속 관계가 있어야합니다.
팁/아이디어/해결 방법이 있습니까?
아무 것도 인정하지 않을 것입니다.
미리 감사드립니다.
편집 : 분명히 직원을 만들거나 삭제하면 현재 더 효과적이지 않습니다. 나는 "내부 표현으로 변환하지 못함"을 얻는다.
아무도 아이디어가 없습니까? 아니면 분명히 확실히 작동하지 않을 것이라고 말할 수 있습니까? 나는 정말로 감사 할 것입니다. –