상품 레포지토리 코드
package jpabook.jpashop.repository;
import jakarta.persistence.EntityManager;
import jpabook.jpashop.domain.item.Item;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
@RequiredArgsConstructor
public class ItemRepository {
private final EntityManager em;
// 업데이트 함수랑 비슷하다고 생각하면 됨
public void save(Item item) {
if (item.getId() == null) {
em.persist(item); // 신규 등록
} else {
em.merge(item); // db에 저장된 걸 가져옴
}
}
public Item findOne(Long id) {
return em.find(Item.class, id);
}
public List<Item> findAll() {
return em.createQuery("select i from Item i", Item.class)
.getResultList();
}
}
기능 설명
save()
- id가 없으면 신규로 보고 persist() 실행
- id가 있으면 아마 데이터베이스에 저장된 엔티티를 수정한다고 보고, merge()를 실행
자세한 내용은 뒤에 웹에서 나온다. 지금은 저장한다 정도로 생각하고 넘어가자.
'Backend' 카테고리의 다른 글
[실전! 스프링부트와 JPA활용] 주문, 주문상품 엔티티 개발 (0) | 2025.04.06 |
---|---|
[실전! 스프링부트와 JPA활용] 상품 서비스 개발 (0) | 2025.04.05 |
[실전! 스프링부트와 JPA활용] 상품 엔티티 개발 + 비즈니스 로직 추가 (0) | 2025.04.05 |
[실전! 스프링부트와 JPA활용] 회원 기능 테스트, application.yml (0) | 2025.04.04 |
[실전! 스프링부트와 JPA활용] 회원 서비스 개발 (0) | 2025.04.03 |