[英]how to map processor to dto
我正在构建一个 MealPlanner 应用程序,该应用程序根据用户偏好构建膳食菜单,并且我需要一些指导来设置 DTO 中的 2 个字段(字段名称:preferenceType、resultState)。
实体结构(命名为 Meal):
class Meal {
String itemName; //Such as Pizza, Sandwich
double portion; //such as 1.5
double cost; //such as 15.5, default currency is dollars
}
DTO的结构:
class MealDTO {
//Identical to Meal
String itemName;
double portion;
double cost;
//Additional fields in DTO
String preferenceType; //FAT FREE, DAIRY FREE, VEGETARIAN
String resultState; //OPTIMAL, FEASIBLE, INFEASIBLE
}
两个类之间的 Class 到 map 值:
public class FieldsMapper {
// MealDTO -> Meal
public Meal MealDtoToMeal(MealDTO mealDto) {
Meal meal = new Meal();
meal.setItemName(mealDto.getItemName());
return meal;
}
//Meal -> MealDTO
public MealDTO MealToMealDto(Meal meal) {
MealDTO mealDto = new MealDTO();
mealDto.setItemName(meal.getItemName());
mealDto.setPortion(meal.getPortion());
mealDto.setCost(meal.getCost());
return mealDto;
}
}
这样,preferenceType 和 cost 的值就会丢失。 我如何将 map preferenceType、resultState 传递给 DTO?
(注意:膳食计划流程作为步骤
首先,我认为您应该对 resultState 和 preferenceType 字段使用枚举而不是 String,因为它们具有固定值。
我认为您应该做的是创建另一个 DTO,其中包含 MealDTO 以及 resultState 和 preferenceType 字段,例如 UserMealDTO。 所以像:
class UserMealDTO {
MealDTO meal;
MealPreference preferenceType;
ResultState resultState;
}
// Enums
public enum MealPreference {
FAT FREE, DAIRY FREE, VEGETARIAN;
}
public enum ResultState {
OPTIMAL, FEASIBLE, INFEASIBLE;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.