我有两个表:一个是users表,另一个是posts表。users表存储用户信息,posts表存储相应用户的相关post,所以用户id现在是posts表中的外键。
在user.java中
@OneToMany(mappedBy = "user")
private List<Post> posts;
在post.java中
@ManyToOne()
@JoinColumn( name = "user_id")
private User user;
在这里,一切都很顺利,表的结构和预期的一样。
现在,当我点击一个特定的端点,“/posts”时,我需要从posts表中检索所有的post,但这次不是用户id而是用户表中该id对应的用户名。如何做到这一点?
检索所有帖子的端点(postcontroller.java)。
@GetMapping("/posts")
public String getPosts(Model model) {
List<Post> postList = postService.getPosts();
model.addAttribute("posts", postList);
return "Post";
}
邮政服务.java
public List<Post> getPosts() {
return postRepository.findAllByOrderByIdDesc();
}
我正在使用thymeleaf检索post.html中的帖子。
任何有关这方面的信息都会有帮助。谢谢:)
1条答案
按热度按时间uubf1zoe1#
我不确定是否有一种默认的方法可以通过存储库来实现这一点,但这里是如何使用hql实现的
添加一个名为
getPostsByUsername
在存储库中这样定义请注意
u.username
这个username
是users表中username字段的名称,而不是数据库中的实际列。