我有一些类结构如下。这些类是hibernate类,所以我不能改变它们。
//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;
}
mappying file
<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 剂量的这种映射可以作为推土机剂量知道集合中的对象。有什么工作吗。
如果只能通过自定义转换器完成此操作,则可以使用示例代码模板提示。
答案 0 :(得分:0)
更深入一级。像这样
<mapping>
<class-a>Order</class-a>
<class-b>OrderShippingDetail</class-b>
<field>
<a>customer.nameParts[0]</a>
<b>this</b>
</field>
</mapping>
<mapping>
<class-a>{class of object @ nameparts[0]}</class>
<class-b>OrderShippingDetail</class-b>
<field><a>name</a><b>firstname</b></field>
</mapping>
这可以作为一种解决方法。我已经用这个技巧让它在某些地方起作用了。
答案 1 :(得分:0)
我正在阅读文档,发现对于深度映射期间的非泛型集合,可以使用指定对象 的 强>
<field>
<a>customer.nameParts[0].name</a>
<b>firstName</b>
<a-deep-index-hint>com.example.Customer, com.example.NamePart</a-deep-index-hint>
</field>