如何在 Java 中获取包含其评论的 MySQL 文章数据?
在 java 中,可以使用 mysql jdbc 驱动连接到 mysql 数据库并查询数据。对于此特定问题,我们想从 article 表中获取文章内容,以及每篇文章下的前 5 条评论。
为此,可以使用 sql left join 查询,如下所示:
select a.id, a.content, c.id as comment_id, c.comment from article as a left join comment as c on a.id = c.pid where c.id in ( select id from ( select c1.id from comment as c1 where c1.pid = a.id order by c1.id desc limit 5 ) as subquery )
此查询使用嵌套查询来获取每篇文章的前 5 条评论。嵌套查询返回一个子查询表,其中包含每篇文章最新的 5 条评论的 id。然后,在主查询中使用它来获取评论内容。
将结果映射到 java pojo 类时,您可以使用 @joincolumns 和 @jointables 注解来创建对象的层次结构。以下是一个示例模型:
@Entity public class Article { @Id private Long id; private String content; @OneToMany(cascade = CascadeType.ALL) @JoinTables({ @JoinTable(name = "comment", joinColumns = @JoinColumn(name = "pid")) }) private List<comment> comments; } @Entity public class Comment { @Id private Long id; private String comment; }</comment>