【发布时间】:2011-11-06 13:52:11
【问题描述】:
我有一些类结构如下。这些类是休眠类,所以我无法更改它们。
//assume all getters & setters are present
public class Order{
private Customer customer;
}
public class Customer{
// non generics set
private Set nameParts;
}
public class NamePart{
private String id;
private String name;
}
// target class
public class OrderShippingDetail{
private String firstName;
}
映射文件
<mapping>
<class-a>Order</class-a>
<class-b>OrderShippingDetail</class-b>
<field>
<a>customer.nameParts[0].name</a>
<b>firstName</b>
</field>
</mapping>
但是这种 customer.nameParts[0].name 映射的工作原理是推土机知道集合中的对象。有什么解决办法吗?
如果这只能通过自定义转换器完成,请提供示例代码模板提示。
【问题讨论】:
-
所以您尝试将集合 nameParts 中的第一个元素映射到 firstName?集合是无序的,所以 nameParts 中的第一个元素并不总是相同的......
-
是的,我知道,但最初的开发人员留下了 set,它只有一个元素,就是整个客户名称(不仅仅是一部分)。基本上我想访问该集合中存在的任何一个元素。
标签: java hibernate collections dozer object-object-mapping