순수 JPA기반 리포지토리 만들기


→ 우선 순수한 JPA기반 리포지토리를 만들어 볼 것입니다.

→ 기본 CRUD 기능을 구현할 것입니다.

  1. Create(저장)

    public void save(Member member){em.persist(member);}
    
  2. 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();
    }
    
  3. Update(변경 → 변경감지 사용)

  4. Delete(삭제)

    public void delete(Long id){
        Member findMember = em.find(Member.class, id);
    		em.remove(findMember);
    }
    

테스트해보기


공통 인터페이스 설정


  1. JavaConfig 설정
  1. Spring data JPA가 구현 클래스 대신 생성

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/178abd71-55cb-47a1-b257-91daec9c1af0/_2020-07-13__8.40.13.png

xxxRepository.getClass() → class com.sun.proxy.$ProxyXXX