Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

회원 도메인 개발 본문

인프런/[인프런] Springboot와 JPA활용 1

회원 도메인 개발

Seung__ 2021. 8. 6. 00:56

1. 구현 기능


  • 회원 등록
  • 회원 목록 조회

 

 

2. MemberRepository


  • @Repository : 컴포넌트 스캔 대상, 스프링 빈으로 등록
  • @PersistenceContext 
    - JPA 표준 annotation
    - 스프링이 EntityManager 만들어서 주입해줌.
  • PK로 찾지 않는경우(ex, findByName, findAll)
    - JPQL 사용해야함
    - em.createQuery(JPQL, 조회타입).getResultList
    - name(parameter)으로 찾는 경우 setParameter(parameterName, parameterValue) 추가됨.
    - query에서 사용한 parameter와 name을 통해 binding 시켜줌.
@Repository //스프링 빈으로 등록, 컴포넌트 스캔.
public class MemberRepository {

    // JPA 표준 annotaion
    //스프링이 entitymanager 만들어저 주입해줌.
    @PersistenceContext
    private EntityManager em;

    public void save(Member member){
        em.persist(member);
    }

    public Member findOne(Long id){
        return em.find(Member.class, id);
    }

    public List<Member> findAll(){
        //JPQL 사용 createQuery(JPQL, 반환타입)
       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) //:name이랑 binding됨.
                .getResultList();
    }

}

 

3. GitHub : 210806 Member Repository


 

GitHub - bsh6463/SpringBootJPA1

Contribute to bsh6463/SpringBootJPA1 development by creating an account on GitHub.

github.com

 

'인프런 > [인프런] Springboot와 JPA활용 1' 카테고리의 다른 글

회원 기능 테스트  (0) 2021.08.06
MemberService 개발  (0) 2021.08.06
엔티티 설계 시 주의점  (0) 2021.08.06
엔티티 클래스 개발  (0) 2021.08.05
도메인 모델 , 테이블 설계  (0) 2021.08.05
Comments