本次实现了新闻页面的评论功能,能够对新闻进行评论和评论互动。同时也实现了点击新闻列表首页的分类和标签,可按分类和标签显示新闻的功能。
本次设计的难点主要集中在评论的展示功能,需将所有子评论展示到一个最初的父评论下,实现利用了递归思想。本次以评论功能的实现为例。
-
设计
po.Comment
类,并在po.News
类中添加相应的Comment
类,并更新Setter
、Getter
和toString
方法@Entity @Table(name = "t_comment") public class Comment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String nickname; private String email; private String content; private String avatar; @Temporal(TemporalType.TIMESTAMP) private Date createTime; @ManyToOne private News news; @OneToMany(mappedBy = "parentComment") private List<Comment> replyComments = new ArrayList<>(); @ManyToOne private Comment parentComment; private boolean adminComment; public Comment() { } }
添加
List<Comment>
数据@OneToMany(mappedBy = "news") private List<Comment> commentList = new ArrayList<>();
-
创建
dao/CommentRepository.java
类,进行数据库操作public interface CommentRepository extends JpaRepository<Comment, Long> { List<Comment> findByNewsIdAndParentCommentNull(Long newsId, Sort sort); }
-
创建
service.impl.CommentServiceImpl.java
类,提供保存评论和展示评论列表的任务@Service public class CommentServiceImpl implements CommentService {