如何映射实体中不存在的DTO字段?我举一个例子,我有两个基本的类。 DTO类(通常是bean类)和JPA实体类。您已经猜到了,我想将实体类映射到DTO。
@Entity
class Poll {
@Id
private Long id;
private String question;
private List<Choice> choices;
private User creator;
...
}
*类已简化,它的JPA映射无关紧要
class PollDTO {
private Long id;
private Long question;
private List<ChoiceDTO> choices;
private UserDTO creator;
private Long votes; // This field exists JUST in DTO class
...
}
如您所见,DTO包含字段votes
,该字段在实体内部不存在,因为投票存储为单独的JPA实体。因此,需要手动设置值,比方说,是从voteService.getVotesForPoll(Long pollId)
中获取值。
当使用Poll
将PollDTO
映射到modelMapper.map(poll, PollDTO.class);
时,如何指示ModelMapper自动获取并应用此值?
我在转换器上进行了尝试,基本上可以运行,但是随后我也必须将Poll
的其他字段映射到PollDTO
,这表明将Choice
映射到{{ 1}}例如也是手动...这是我的转换器方法...
ChoiceDTO
**如果您想了解一些注释,那么我现在正在使用Spring框架,对于这个问题没有关系