首页 / JAVA / java – 非平凡的推土机映射
java – 非平凡的推土机映射
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 非平凡的推土机映射,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1518字,纯文字阅读大概需要3分钟。
内容图文
![java – 非平凡的推土机映射](/upload/InfoBanner/zyjiaocheng/823/4a0d9411871d413daf92b719a03619f4.jpg)
我正努力让Dozer屈服于我的意志,因为我觉得应该很简单.我有两个相似的模型,我想在它们之间进行映射,但是一个具有比另一个更“深”的层次结构,这在处理集合时会引起我的问??题.考虑以下类:
来源类:
class Foo {
String id;
NameGroup nameGroup;
// Setters/Getters
}
class NameGroup {
private List<Name> names;
// Setters/Getters
}
class Name {
private String nameValue;
// Setters/Getters
}
目的地类:
class Bar {
private String barId;
private BarNames barNames;
// Setters/Getters
}
class BarNames {
private List<String> names;
// Setters/Getters
}
现在我想要以下单向映射:
Foo.id -> Bar.barId // Simple enough
但我需要:
Foo.nameGroup.names.nameValue -> Bar.barNames.names
因此,Foo.nameGroup.names中的每个Name实例都应该导致将一个String添加到BarNames.names列表中.这可能吗?
解决方法:
只要您的“Name”类包含String构造函数,就可以使用Dozer轻松完成此操作.
来自Dozer docs(http://dozer.sourceforge.net/documentation/simpleproperty.html)的引用:
Data type coversion is performed
automatically by the Dozer mapping
engine. Currently, Dozer supports the
following types of conversions: (these
are all bi-directional)…
String to
Complex Type if the Complex Type
contains a String constructor…
我已经用上面的类测试了这个(我遇到了同样的问题)并且它完美地工作.这是我使用的映射:
<mapping>
<class-a>com.test.bar.Bar</class-a>
<class-b>com.test.foo.Foo</class-b>
<field>
<a>barId</a>
<b>id</b>
</field>
<field>
<a>barNames.names</a>
<b>nameGroup.names</b>
<a-deep-index-hint>java.lang.String</a-deep-index-hint>
<b-deep-index-hint>com.test.foo.Name</b-deep-index-hint>
</field>
</mapping>
内容总结
以上是互联网集市为您收集整理的java – 非平凡的推土机映射全部内容,希望文章能够帮你解决java – 非平凡的推土机映射所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。