【发布时间】:2018-03-30 03:45:31
【问题描述】:
我有这样的映射:
@Mappings({
@Mapping(target = "....", source = "..."),
@Mapping(target = "....", source = "..."),
@Mapping(target = "server", source = "server") // Added for clarity
})
MyDTOClass mapMyEntity(MyEntityClass myEntityClass, Server server);
List<MyDTOClass> mapMyEntity(List<MyEntityClass> myEntityClass, Server server);
当我从数据库中检索数据时,我会得到一个实体列表。我需要将同一个 Server 对象实例映射到列表中的所有 DTO 实例。
MapStruct 期望 List<Server> 在这个用例中有点多余。
这是我想要的伪代码:
Server server = ....;
List<MyDTOClass> myDTOClassList = new ArrayList<MyDTOClass>();
for(MyEntityClass myEntityClass:List<MyEntityClass>)
{
MyDTOClass myDTOClass = new myDTOClass();
//My standard mappings
myDTOClass.setXXX(myEntityClass.getXXX());
...
...
//My special mapping applicable for all objects in list
myDTOClass.setServer(server);
myDTOClassList.add(myDTOClass);
}
如何做到这一点?
【问题讨论】:
-
你的问题不是很清楚。你到底想映射什么?
List<Server>来自哪里? -
我的基本映射是 MyDTOClass mapMyEntity,我想将它扩展到一个集合中。但是将相同的服务器对象附加到列表的所有实例。我添加了伪代码。希望现在清楚了。