iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0

文章寫 Entity 的生命週期,而人類的生命週期喜怒哀樂讓我想到 Sasha 許多首歌
今年很幸運搶到她的演唱會門票,現場沒話說得完美,極度推薦這個有些 sad 有時有點 emo 的才女!

Yes

試想,當我們在一個系統裡輸入一串文字、上傳一張照片,這些資料會去哪裡?如何被儲存、被管理?今天 Day 15 就來了解 Entity 的生命週期

什麼是 Entity?

資料就像是一個人,每個人都有獨特的身分證、名字或一些基本資料。在 SpringBoot 中這樣的「人」就叫做 Entity。簡單來說,Entity 是用來代表資料庫中的一個「實體」,例如:用戶 user、訂單 order 或商品 product 等。

在 Spring Dat JPA 中,Entity 代表資料庫的一張表(table)。它不僅僅是一個普通的 Java 類別,而是透過特定的註解與資料庫中的特定表格或欄位進行綁定。

Entity 的生命週期和操作

每個「人」從出生到離世,都有他的生命週期。Entity 也不例外,包括:

  1. Transient - 新建立的 Entity,但還沒有被儲存到資料庫。
  2. Managed - 已經被儲存/持久化到資料庫的 Entity。
  3. Detached - 曾經被儲存但後來被移除管理的 Entity,與當前 session 脫鉤。
  4. Removed - 被標記為即將從資料庫刪除的 Entity。

https://ithelp.ithome.com.tw/upload/images/20230930/2016268274v2sTducl.png

在 SpringBoot 中,我們可以透過 JPA (Java Persistence API) 來操作這些 Entity,像是新增、查詢、更新或刪除。

透過 JPA 的 EntityManager,我們可以管理這些生命週期,例如使用 persist 進行儲存,或使用 remove 進行刪除。

Entity 的特性:

  1. 註解:Entity 通常會有 @Entity 註解,告知 Spring Boot 這個類別應被視為一個 Entity。其他常見的註解包括 @Table (指定對應的資料表名稱)、@Column (指定對應的欄位屬性)、@Id (標明主鍵) 等。
  2. 映射資料表結構:每一個 Entity 類別的「實體」例代表資料表中的一行數據。類別中的屬性則對應到資料表中的欄位。
  3. 可與資料庫互動:透過 JPA,Entity 可以被儲存/持久化到資料庫,或從資料庫中被查詢。

上一篇
Day 14 - Hibernate API
下一篇
Day 16 - Spring Data JPA Entity Relation
系列文
Spring Boot 三十天挑戰賽30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言