我正在尝试使用mapstruct更新集合:
List<Passenger> updatePassengers(@MappingTarget List<Passenger> passengers, List<Passenger> sourcePassenger);
Passenger updatePassenger(@MappingTarget Passenger passenger, Passenger sourcePassenger);
现在在生成的源中生成updatePassenger方法如下:
public List<Passenger> updatePassengers(List<Passenger> passengers, List<Passenger> sourcePassenger) {
if ( sourcePassenger == null ) {
return null;
}
passengers.clear();
for ( Passenger passenger : sourcePassenger ) {
passengers.add( passenger );
}
return passengers;
}
这里将乘客从目的地移走并从乘客那里设置乘客。我想更新单个乘客对象。
我浏览了mapstruct文档,并说它在更新前清除了收藏。
maptruct是否可以为每位乘客调用updatePassenger方法?
答案 0 :(得分:0)
如果您不想使用MapStruct的默认行为,您应该编写自己的自定义方法来执行更新。
int days = countDays(day, month, daysInMonth);
char *c[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
printf("There are %d days; day of the week: %s \n", days, c[(days - 1) % 7]);
最重要的是,MapStruct无法生成您需要的代码,因为它不知道哪个乘客应该与哪个乘客相关联。
在您的定义中,您说您希望使用default List<Passenger updatePassengers(List<Passenger> passenger, Lit<Passenger> sourcePassengers) {
//Do your logic here
}
列表更新passenger
列表。