본문으로 바로가기

05.JPA③-Member List 조회

category IT/SpringDay 2022. 5. 19. 17:38

1. 전체회원 조회

  1) Controller

@GetMapping(value = "/members")
	public String listMember(Model model) {
		List<Member> memberList = memberService.getListAllMember();
		logger.info("memberList.size() -> {}" , memberList.size());
		model.addAttribute("members", memberList);
		return "members/memberList";
	}

 

  2) Service

public List<Member> getListAllMember() {
	List<Member> listMember = memberRepository.findAll();
	System.out.println("MemberService  getListAllMember listMember.size()->"+listMember.size());
	return listMember;
}

 

  3) memberRepository.findAll()

                                             m= Member.class  ,        반환값

     - em.createQuery( "select m from Member m" ,  Member.class). 

     - getResultList 컬렉션 형태로 반환

@Override
public List<Member> findAll() {
	List<Member> memberList = em.createQuery("select m from Member m", Member.class).getResultList();
	return memberList;
}

 

- 트랜잭션 후 

* Hibernate: select member0_.id as id1_0_, member0_.name as name2_0_ from member member0_

 

 

2. 회원 검색

  1) Controller

@PostMapping(value = "/members/search")
	public String search(Member member, Model model) {
		List<Member> memberList = memberService.getListSearchMember(member.getName());
		model.addAttribute("members", memberList);
		return "members/memberList";
	}

  2) memberService.getListSearchMember(member.getName());

public List<Member> getListSearchMember(String searchName) {
	List<Member> listMember = memberRepository.findByName(searchName);
	System.out.println("MemberService getListSeachMember listMember.size()->" + listMember.size());
	return listMember;
}

  3) memberRepository.findByName(searchName);

      - em.createQuery("select m from Member m where name Like :pname", Member.class)       

        :pname -> ?  표로 생각
       .setParameter("pname", pname)  파라메터의 값 지정해주기
       .getResultList();

@Override
public List<Member> findByName(String searchName) {
	String pname = searchName + '%';
	System.out.println("JpaMemberRepository findByName pname ->" + pname);	
	List<Member> memberList = em.createQuery("select m from Member m where name Like :pname", Member.class)
								.setParameter("pname", pname)
								.getResultList();
	System.out.println("JpaMemberRepository findByName memberList.size() ->" + memberList.size());
	return memberList;
}

'IT > SpringDay' 카테고리의 다른 글

05.JPA02①  (0) 2022.05.19
Lombok설치  (0) 2022.05.19
05.JPA②-Member 신규 생성  (0) 2022.05.19
05.JPA①-프로젝트 생성 및 기본 세팅  (0) 2022.05.19
05.JPA 개념  (0) 2022.05.19