如何使用推土机将类型字段映射为抽象类?

2024-05-02

我有以下域结构:

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 是一个抽象类,并且 dozer 无法猜测如何实例化它。

所以我的问题很简单:我如何向推土机指示,对于字段 Contract.contractor 的映射,它应该实例化一个实例Employer if type == 'Employer'以及其他地方Employee ?

感谢您的帮助。


您可以通过提示来完成此操作。 有点像这样:

<mapping>
 <class-a>Contract</class-a>
 <class-b>ContractDTO</class-b>
 <field>
   <a>contractor</a>
   <b>contractor</b>
   <a-hint>your.package.Employer, your.package.Employee</a-hint>
   <b-hint>your.DTOpackage.EmployerDTO, your.DTOpackage.EmployeeDTO</b-hint>
 </field>
</mapping>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用推土机将类型字段映射为抽象类? 的相关文章

随机推荐