🔙뒤로가기
ItemRepository
package jpabook.jpashop.domain.repository;
import jpabook.jpashop.domain.item.Item;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
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); // 업데이트
}
}
// JPA의 save는 기본적으로 id값이 null인지를 판단해 insert와 update를 결정한다.
public Item findOne(Long id){
return em.find(Item.class, id);
}
public List<Item> findAll(){
return em.createQuery("select i from i", Item.class)
.getResultList();
}
}
기능 설명
- save()
- id가 없으면 신규로 보고 persist() 실행 ⇒ insert기능
- id가 있으면 이미 데이터베이스에 저장된 엔티티를 수정한다고 보고 merge()실행 ⇒ update 실행