I가 다음 도메인 구조 :유형이있는 필드를 도저와 추상 클래스로 매핑하는 방법은 무엇입니까?
<mapping>
<class-a>Person</class-a>
<class-b>PersonDTO</class-b>
</mapping>
<mapping>
<class-a>Employer</class-a>
<class-b>PersonDTO</class-b>
</mapping>
<mapping>
<class-a>Contract</class-a>
<class-b>ContractDTO</class-b>
</mapping>
가 내 문제가 있기 때문에에 B에서 필드 Contract.contractor의 매핑에 관한 : 이제
abstract class Person { String name; //with getter and setter }
class Employer extends Person {}
class Employee extends Person {}
class Contract { Person contractor; //with getter and setter }
class PersonDTO implements Serializable { String name; String type; //type == 'Employee' or 'Employer' }
class ContractDTO implements Serializable { PersonDTO contractor; }
나는이 다음 도저 매핑을 설정할 때 Contract.contractor 필드는 추상 클래스이며 도저는 인스턴스를 생성하는 방법을 추측 할 수 없습니다.
그래서 제 질문은 간단하다 : 어떻게 분야 Contract.contractor의 매핑, 그것은 type == 'Employer
경우 Employer
'다른 곳 Employee
의 인스턴스를 인스턴스화해야한다, 그 도저에 표시 할 수 있습니다?
도움 주셔서 감사합니다.
귀하의 Person 클래스는 추상적이지만, 나는 그것이 런타임에 상속 된 클래스의 인스턴스가 있어야한다 생각? 소스 객체에 대한 계약자 속성은 어떻게 생성됩니까? –
@Gonzalo 귀하의 질문을 이해할 수 없습니다. 계약자가 고용주 또는 직원 중 하나이며 런타임에, 맞습니다 메소드 setContractor (사람 계약자) – fabien7474
10 개의 타워 설정, 사람은 당신이 언급 그 두 가지 유형 중 하나이며, 도저는 알아낼 수와 변환해야 콘크리트 형. Dozer는 추상 클래스의 인스턴스를 만들지 않고 런타임에 계약자가 참조하는 실제 객체 (eith 고용주 또는 직원)를 생성하려고 시도합니다. 어떤 종류의 오류가 있습니까? –