繁体   English   中英

如何使用Spring Boot中另一张表的外键从一张表中获取值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM