iT邦幫忙

2023 iThome 鐵人賽

DAY 24
1

@Repository

@Repository不是標準的JPA註釋,他是 Spring 框架中的一個註解,它用於標識一個類別作為資料訪問層(DAO - Data Access Object)組件。具體來說,@Repository 註解用於將資料訪問類別標記為 Spring 受管理的 bean,表示它負責處理與資料庫或其他資料來源的互動,像是查詢、插入、更新和刪除數據。通常,資料訪問類別用於執行與持久性存儲相關的操作。而 Spring Data JPA是Spring框架的一部分,提供了對JPA的抽象,使數據庫操作更容易!

首先,我們需要有對應資料庫的示實體類別。

package com.example.spring.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
@Table(name = "RESTAURANT") // 指定映射到名稱為 "RESTAURANT" 的資料表
public class Restaurant {
	  @Id
		@Column(name = "EMPLOYEE_NUM") // 代表對應的資料表欄位
    private Long employeeNum; // 這是主Key
    private String chef;
    private String food;
    private String recipe;

    // 下面加入屬性的 Getter 和 Setter 方法
}

第二步,使用@Repository 來標識資料訪問層,而這個界面會繼承 JpaRepository

package com.example.spring.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface RestaurantRepository extends JpaRepository<Restaurant, Long> {
}
  • 使用@Repository對介面RestaurantRepository進行標記,表示它是一個存儲庫。
  • 繼承了JpaRepository<Restaurant, Long>,這是Spring Data JPA的一個介面。它為Restaurant實體提供了一組通用的CRUD(創建、讀取、更新、刪除)操作。

使用這個設置,您可以使用JpaRepository提供的方法,如savefindByIdfindAlldelete等,無需手動編寫SQL查詢即可對Restaurant實體執行CRUD操作。

結論,想使用JPA所提供方,您需要配置Spring應用程式上下文,定義與資料庫對應的Restaurant 實體類別,提供JPA配置,並設置適當的資料來源才能使其正常工作。

參考資料

https://spring.io/projects/spring-data-jpa
https://www.baeldung.com/spring-data-repositories
https://www.baeldung.com/the-persistence-layer-with-spring-data-jpa


上一篇
Day 23 : Spring JPA 實際操作:@Entity
下一篇
Day 25 : Spring JPA 實際操作 : 實現增刪改查。
系列文
Spring、Spirng MVC 及 Spring Boot 自主學習旅途!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言