[英]How to get the value from one table using the foreign key from another table in Spring boot?
我有两个表:一个是用户表,另一个是帖子表。 Users 表存储用户信息,posts 表存储相应用户的相关帖子,因此用户 id 现在是 posts 表中的外键。
在 User.java 中
@OneToMany(mappedBy = "user")
private List<Post> posts;
并在 Post.java 中
@ManyToOne()
@JoinColumn( name = "user_id")
private User user;
在这里,一切正常,表格已按预期结构。
现在,当我点击特定端点时,“/posts”我需要从帖子表中检索所有帖子,但这次不是 user_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 中的帖子。
任何有关这方面的信息都会有所帮助。 谢谢 :)
我不确定存储库是否有默认方法可以做到这一点,但这里是您如何使用 HQL 做到这一点
在存储库中添加一个名为getPostsByUsername
的函数并像这样定义它
@Query("SELECT p from POSTS p inner join p.user u where u.username=?1")
public List<Post> getPostsByUsername(String username);
请注意, u.username
username
是用户表中用户名字段的名称,而不是数据库中的实际列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.