当 DTO 位于 DOZER 映射文件中的哈希映射内时如何访问 DTO 属性
我有一个 UserDTO,其中有 userID 字段。 HashMap 将此 DTO 作为键 User_Details 的值。
我想使用 DOZER 映射将 userID 属性从 HashMap->User_Details->userId 设置为属性 UserDisplayDTO->userId。
如何在 Dozer XML 映射中执行此操作?
<mapping map-id="testMapping">
<class-a>java.util.HashMap</class-a>
<class-b>com.common.dto.UserDisplayDTO</class-b>
<field>
<a key="User_Details">this</a>
<b>userId</b>
</field>
</mapping>
I have a UserDTO which has userID field. The HashMap has this DTO as value for key User_Details.
I want to use DOZER mapping to set the userID attribute from HashMap->User_Details->userId to attribute UserDisplayDTO->userId.
How can I do this in Dozer XML mapping?
<mapping map-id="testMapping">
<class-a>java.util.HashMap</class-a>
<class-b>com.common.dto.UserDisplayDTO</class-b>
<field>
<a key="User_Details">this</a>
<b>userId</b>
</field>
</mapping>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须为此定义一个自定义转换器。 Atm、dozer xml 映射不支持基于键的哈希映射查找。
因此,对于您的情况,您需要类似的内容
在 UserIdConverter 实现中,您必须从哈希映射中检索值并返回它(为了清楚起见,省略了空检查等):
You have to define a custom converter for this. Atm, dozer xml mapping doesn't support a keybased hashmap lookup.
So for your case, you need something like
In the UserIdConverter implementation, you would have to retrieve the value from the hashmap and return it (null checking etc. omitted for the sake of clarity):