У меня следующая доменная структура:
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; }
Теперь, когда я настроил следующее отображение бульдозера:
<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>
Моя проблема связана с отображением поля Contract.contractor из B в A, поскольку поле Contract.contractor является абстрактным классом, и бульдозер не может угадать, как его создать.
Поэтому мой вопрос прост: как я могу указать бульдозеру, что для отображения поля Contract.contractor он должен создать экземпляр Employer
, если type == 'Employer
'и в других местах Employee
?
Спасибо за вашу помощь.