java - 推土机将非通用集合映射到属性

标签 java hibernate collections dozer object-object-mapping

我有一些类结构如下。这些类是 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; 
} 

映射文件

<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 dozer dozer dozer 知道集合中的对象。有什么解决办法吗?

如果这只能通过自定义转换器完成,请提供示例代码模板提示。

最佳答案

再深入一层。像这样

<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>

这是一种变通方法。我已经使用这个技巧使其在某些地方起作用。

关于java - 推土机将非通用集合映射到属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7239828/

相关文章:

java - 如何从 eclipse 导出为可运行 JAR 文件?

java - mahout 0.7中mahout 0.5中VectorWritable.addTo的等效方法是什么?

java - Hibernate 不连接 MySql

c# - 将 IList 转换为集合

java - 如何在Java中实现嵌套集合的迭代器?

collections - 使用计划任务更新 Coldfusion solr 集合

java - 应用程序 Java 和托管 mysql

java - 具有用户定义大小的数组,填充随机数

java - Hibernate - 一对一关系单表继承

java - JPA 实体有多个同一类的对象