用hui-admin,springboot,thymeleaf写了个后台管理,遇到了个问题。
1.首先数据库里有一个评论表和一个用户表,评论表的用户id和用户表id相关联,而且评论表里没有用户名字这个字段
2.想实现的功能是:在前端展示评论表里的所有数据,并且通过外键来展示每个评论的所属用户名,效果如下
3.目前遇到的问题是,后面的接口回传的数据,无论是存在session还是model里,前面都只能接收comment里的数据,展示评论内容,而无法展示相关联的用户名字。目前知道是因为没有将名字和评论表绑定导致的。但是怎么解决呢。我尝试,在后台使用List>,可这样前面还是无法获取.
public String fbAll(Model model,
HttpSession session
){
QueryWrapper<Comment> wrapper = new QueryWrapper<>();
wrapper.isNotNull("cUserId");
List<Comment> comments = commentMapper.selectList(wrapper);
session.setAttribute("comments",comments);
List<Map> list = new ArrayList<>();
Map<Integer,String> map = new HashMap<>();
for (Comment comment : comments) {
Integer cUserId = comment.getCUserId();
String uNames = commentMapper.queryByCId(cUserId);
map.put(cUserId,uNames);
list.add(map);
}
// session.setAttribute("namelists",list);
model.addAttribute("namelist",list);
return "feedback-list";
}
前面的
不建议通过评论内容查询用户id(cUserId),有可能存在评论不是唯一的,会导致查询的用户id为多个。
提供简单方法参考,即通过一个关联sql来实现,即在commentMapper.xml文件中使用类似如下
sql,新增个包含返回字段的dto类,并在commentMapper.java中新增方法,返回类型List<新增的dto>
SELECT c.cId,u.uName,c.Content from 用户表 as u, 评论表 as c
where u.uid = c.cUserId