→ 우선 순수한 JPA기반 리포지토리를 만들어 볼 것입니다.
→ 기본 CRUD 기능을 구현할 것입니다.
Create(저장)
public void save(Member member){em.persist(member);}
Read(조회)
public Member findOne(Long id){
return em.find(Member.class, id);
}
public List<Member> findAll(){
return em.createQuery("select m from Member m", Member.class)
.getResultList();
}
public List<Member> findByName(String name){
return em.createQuery("select m from Member m where m.name = :name",
Member.class)
.setParameter("name", name)
.getResultList();
}
Update(변경 → 변경감지 사용)
Delete(삭제)
public void delete(Long id){
Member findMember = em.find(Member.class, id);
em.remove(findMember);
}
프로젝트명Application.java 파일에 basePackages 설정
@Configuration
@EnableJpaRepositories(basePackages = "jpabook.jpashop.repository")
public class AppConfig {}
스프링 부트 사용 시 @EnableJpaRepositories(basePackages="jpabook.jpashop.repository")
를 따로 작성해줄 필요가 없고 굳이 다른 Config 클래스를 사용할 때 작성해준다.
xxxRepository.getClass() → class com.sun.proxy.$ProxyXXX
@Repository
어노테이션 생략 가능