iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
SideProject30

Java Spring + Vue 甘苦學習路 前後端分離之 Blog 實戰系列 第 15

Day 15 Java Spring API 實作 - Comment 評論功能

  • 分享至 

  • xImage
  •  

概述

在 Blog 網頁中,很重要的功能之一是評論留言的項目,而評論除了要記錄留言內容之外,也會需要紀錄留言者等資訊,複雜度上會需要一個 table 去作紀錄,所以需要將其封裝成一個 Entity。實作的流程會像是之前的 Post 一樣。以下將會敘述開發的內容。

Entity

首先要在 entity 這個 package 中建立一個 Comment 這個 class。

在 Comment.java 中使用以下:


@Data
@AllArgsConstructor
@NoArgsConstructor
public class Comment{
@Id
@GeneratedValue(strategy=GenerarionType.IDENTITY)
	private long id;
	private String name;
	private String email;
	private String body;
	
	@ManyToOne(fetch=FetchType.Lazy)
	@JoinColumn(name = "post_id", nullable=false)
	private Post post;
}

以下為細節紀錄及說明:

  1. 其中的 FetchType.Lazy 會讓 Hibernate 根據關係抓取相對應的欄位,藉此進行 table 的 mapping

  2. 使用 join column 去作 Foreign key 的對照

在 Post.java 這個 class 中使用 Set 去存 comment,避免重複
CascadeType.java 中有不同的 parameter: ALL, PERSIST

@OneToMany(mappedBy="post", cascade=CascadeType.ALL, orphanRemoval = true)
private Set<Comment> comments = new HashSet<>();

Repository

建立一個 Interface 命名為 CommentRepository.java

@Repository
public interface CommonRepository extends JpaRepository<Comment, Long>{
		
}

以上是 Comment 功能實現的初步實作,後續將 Comment 功能實作完成並作測試~~ 有興趣的記得來看喔~
明天見~


上一篇
Day14 Java Spring API 實作 — 分頁 排序 最終篇
下一篇
Day 16 Java Spring API 實作 - Comment 評論功能 Part2
系列文
Java Spring + Vue 甘苦學習路 前後端分離之 Blog 實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言