使用数据传输对象避免写多表关联查询
Posted zxfei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用数据传输对象避免写多表关联查询相关的知识,希望对你有一定的参考价值。
@Service
public class QuestionServiceImpl implements QuestionService {
@Autowired
private QuestionMapper questionMapper;
@Autowired
private UserMapper userMapper;
@Override
public List<QuestionDTO> findAll() {
List<QuestionDTO> questionDTOs = new ArrayList<>();
List<Question> questions = questionMapper.findAll();
User user = null;
QuestionDTO questionDTO = null;
for (Question question : questions) {
user = userMapper.findById(question.getPublisher());
questionDTO = new QuestionDTO();
BeanUtils.copyProperties(question, questionDTO);
// 为数据传输对象设置user
questionDTO.setUser(user);
questionDTOs.add(questionDTO);
}
return questionDTOs;
}
}
Question.java
@Data
public class Question {
private Integer id;//
private String title;// varchar(50)
private String description;// text,
private Long gmtCreated;// bigint(20) DEFAULT NULL,
private Long gmtModified;//
private Integer publisher;// 问题发布者id
private Integer commentNum;// 评论数
private Integer viewNum;// 浏览数
private Integer likeNum;// 点赞数
private String tag;// 问题标签
}
传输对象
package com.fei.dto;
import com.fei.domain.User;
import lombok.Data;
@Data
public class QuestionDTO {
private Integer id;//
private String title;// varchar(50)
private String description;// text,
private Long gmtCreated;// bigint(20) DEFAULT NULL,
private Long gmtModified;//
private Integer publisher;// 问题发布者id
private Integer commentNum;// 评论数
private Integer viewNum;// 浏览数
private Integer likeNum;// 点赞数
private String tag;// 问题标签
// 数据传输对象,增加发布者User的id
private User user;
}
以上是关于使用数据传输对象避免写多表关联查询的主要内容,如果未能解决你的问题,请参考以下文章