Spring學習:實踐Spring Data JPA創(chuàng)建實體類
---在學習Spring Data JPA時,我們了解到它底層是使用Hibernate(JPA規(guī)范的一個實現(xiàn))來操作數(shù)據(jù)庫。在使用Spring Data JPA之前,首要任務就是創(chuàng)建實體類,并將其映射
---
在學習Spring Data JPA時,我們了解到它底層是使用Hibernate(JPA規(guī)范的一個實現(xiàn))來操作數(shù)據(jù)庫。在使用Spring Data JPA之前,首要任務就是創(chuàng)建實體類,并將其映射到數(shù)據(jù)庫表。本文將分享相關的操作步驟。
創(chuàng)建SpringBoot應用框架
首先,我們通過Spring Initializr創(chuàng)建一個基于SpringBoot的應用框架。必要的依賴包括:Lombok(簡化代碼開發(fā))、Spring Data JPA(JPA相關的依賴)和MySQL Driver(用于測試MySQL數(shù)據(jù)庫)。在文件中配置數(shù)據(jù)庫連接信息,并額外添加如下配置:1. 應用啟動時,若數(shù)據(jù)庫中沒有相應表結(jié)構(gòu),則自動創(chuàng)建;2. 控制臺輸出格式化后的SQL語句;3. 針對MySQL數(shù)據(jù)庫,需要指明相應的“方言”以確保使用更好的InnoDB引擎。接下來,我們定義實體類。
定義實體類及注解
在定義實體類時,我們需添加一些關鍵注解。@Entity是核心注解,用于定義該類為一個實體類,與表進行對應;@Table通過該注解指明實體對應的表名稱;@Builder、@Data、@NoArgsConstructor、@AllArgsConstructor是Lombok相關注解,可自動生成工廠方法、所有成員變量的get/set方法,以及無參和有參構(gòu)造函數(shù)。此外,由于涉及金額,在實體類中使用了joda-money開源類庫的Money對象。
設置主鍵列和生成規(guī)則
通過@Id注解指明主鍵列,同時通過@GeneratedValue(strategy)注解指明主鍵使用自增序列。其他成員變量與數(shù)據(jù)庫表的對應關系默認情況下列名和屬性名一致,如不同需使用@Column(name"列名")進行指定。針對創(chuàng)建時間和更新時間,我們使用@CreationTimestamp和@UpdateTimestamp注解,分別在記錄第一次添加到數(shù)據(jù)庫時自動填充當前時間,以及在記錄更新時自動填充當前時間。
其他成員變量與數(shù)據(jù)庫表的對應關系
除了主鍵列外,其他成員變量與數(shù)據(jù)庫表的對應關系也需要注意。特別是對于joda-money開源類庫的Money類型屬性,需要指定存儲貨幣整數(shù)值。執(zhí)行SpringBoot啟動類后,觀察控制臺輸出,因為數(shù)據(jù)庫中沒有對應表,會輸出建表語句,從中可以看出主鍵ID采用自增序列生成策略,以及Money類型的成員變量price對應的列也采用整型存儲。
通過以上步驟,我們成功創(chuàng)建了實體類并將其映射到數(shù)據(jù)庫表中,為后續(xù)操作奠定了基礎。繼續(xù)深入學習Spring Data JPA,將有助于更好地利用其強大功能進行數(shù)據(jù)持久化操作。愿這些經(jīng)驗能夠幫助您更好地理解和運用Spring Data JPA。