- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类似于以下两个类的场景:
public class Person {
private String name;
private Set<Person> familyMembers;
//constructors & getters and setters
}
Person
类是我的源类。我正在尝试使用 Dover 将此类映射到以下目标类:
public class PersonPrime {
private String personName;
private FamilyMembers familyMembers;
//constructors & getters and setters
}
public class FamilyMembers {
private List<PersonPrime> familyMembers;
//constructors & getters and setters
}
我的实际场景中的目标类是由 JAXB 生成的(使用我创建的 XSD)。 XSD 是规定的,我无法真正更改它们,因此无法更改目标类。目前,我可以在映射 XML 文件中映射基元,但无法映射集合。
知道如何使用 Dozer 将 Person
的对象映射到 PersonPrime
类型的对象吗?
最佳答案
默认情况下,JaxB 不会为“FamilyMembers”类型中的集合生成 setter。当 Dozer 尝试调用不存在的 setter 时,这将导致 Dozer 内部深处出现空指针异常(Dozer 5.4.0 中的 org.dozer.util.ReflectionUtils.java:323)。为了避免这种情况,您需要在集合字段上设置 is-accessible true ,这将导致它直接设置 familyMembers.familyMembers 字段。因此,以下修改后的映射应该起作用:
<mapping>
<class-a>Person</class-a>
<class-b>PersonPrime</class-b>
<field>
<a>name</a>
<b>personName</b>
</field>
<field>
<a>familyMembers</a>
<b is-accessible="true">familyMembers.familyMembers</b>
</field>
</mapping>
关于java - 推土机 - 测绘集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23215406/
我有一个类似于以下两个类的场景: public class Person { private String name; private Set familyMembers; /
如何将单个字段映射到 Dozer 中的 List/Collection? class SrcFoo { private String id; private List bars; }
我正在通过 Dozer 映射器映射两个 DTO 对象。我有兴趣从列表中选择一个值并将其映射到目标文件中的单个字段。 是否可以像这样使用映射: someList[0] someVariab
我正在使用推土机来映射对象。如何忽略(排除)使用推土机注释的字段? 类似于: class A { @IgnoreField public String so
我已经被这个麻烦困扰了两天了,但我无法解决。我有: public class ClientBo{ ... List person; ... } 和 public class ClientV
为什么dozer无法将Number类型的Source Class变量映射到相同类型的Destination Class变量? 出现以下异常: java.lang.IllegalArgumentExce
如何以编程方式为推土机设置自定义转换器?以下代码不起作用: 自定义转换器实现: class ConverterImpl extends DozerConverter { ConverterImpl()
我需要编译一个针对特定架构或更好的程序,使用通用 AMD64 指令编译,忽略更新的 AMD cpu(推土机和打桩机)。 具体来说,我需要绝对忽略任何 FMA 或 XOP 指令(我的理解是这些通常在 O
我想将DTO(均为字符串数据类型)映射到VO(包含String、int、boolean、Date) 学生DTO private StudentDetailDTO student; 学生详细信息DTO:
我有一个列表列表,我正在尝试使用 Dozer 和自定义转换器将其映射到二维数组 [][]。 public class Field { List items; public void a
有没有办法通过它的 xml 映射文件来配置 dozer 以将 -1 的原始 int 字段值转换为空对象引用? 遗留对象模型默认值为 -1,因此零可以是一个有效的选择。 我们要映射到的较新的对象模型假定
我正在尝试在我当前运行 Spring 和 Hibernate 的 Web 应用程序上实现 Dozer 作为桥接模式的帮助,但我认为我做错了什么,因为尝试多次使用 DozerBeanMapper 实例会
我是一名优秀的程序员,十分优秀!