推土机映射设置为设置

时间:2016-08-05 23:03:12

标签: dozer

您好我正在尝试使用Dozer将我的Hibernate域对象映射到DTO。源映射是包含Set的Object。使用API​​转换,映射工作正常,但不保留我的结果集中的顺序。有没有办法保留结果集中的顺序?谢谢,

1 个答案:

答案 0 :(得分:0)

默认情况下,设置不支持排序。您是否尝试使用LinkedHashSet作为实现?

我最近使用TreeSet做了类似的事情。我将无序集转换为有序集。秘诀是在映射之前在DTO中创建一个空的TreeSet。

TreeSet<MyClass> mySet = new TreeSet<MyClass>(new MyComparator());
myDTO.setMyClasses(mySet);
mapper.map(otherBean, myDTO);

在Dozer映射之后,目标(myDTO)中的顺序将与比较器的顺序相匹配。

我怀疑如果您同样在目标DTO中将Set的实现预先设置为LinkedHashSet,那么将保留原始集合的顺序。如果没有,请尝试将源bean的实现设置为LinkedHashSet。