有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Dozer将非通用集合映射到属性

我的班级结构如下。这些类是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>

但这是客户的映射。nameParts[0]。namedosent的工作原理是推土机知道集合中的对象。附近有工作吗

如果这只能由自定义转换器完成,请提供一个示例代码模板提示


共 (1) 个答案

  1. # 1 楼答案

    我查阅了文档,发现对于深度映射期间的非泛型集合,可以使用

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