Spring/spring_old

07./ Spring Web MVC-DB연계-Spring DATA JPA-이름 포함 검색 출력

slow333 2023. 1. 15. 14:49

이전 예제는 이름이 정확히 일치하는 경우이고 이번 예제는 이름을 포함하는 내역을 검색해서 보여주는 예제임

1. interface MemberRepository에 내용 추가

public interface MemberRepository {
  Member save(Member member) throws ClassNotFoundException;
  Optional<Member> findById(Long id) throws ClassNotFoundException;
  Optional<Member> findByName(String name) throws ClassNotFoundException;
  List<Member> findByNameContaining(String name);
  List<Member> findAll() throws ClassNotFoundException;
}

2. JpaMemberRepository에 해당 검색 조건 추가

@Override
public List<Member> findByNameContaining(String name) {
  List<Member> result = em.createQuery("select m from Member m where m.name = :name", Member.class)
          .setParameter("name", name)
          .getResultList();

  return result;
}

3. service 항목(MemberService)에 repository 항목 추가 

public List<Member> findByNameContaining(String name) throws ClassNotFoundException {
  return memberRepository.findByNameContaining(name);
}

4. MemberController에 내용추가/변경

@PostMapping("/members/oneMember")
public String list(Model model,MemberForm form) throws ClassNotFoundException {

  List<Member> memberName = memberService.findByNameContaining(form.getMemberName());
  if (memberName != null) {
    model.addAttribute("members", memberName);
  }else  {
    return "members/findOne";
  }
  return "members/oneMember";
}

5. HTML 파일은 기존 것 재활용

'Spring > spring_old' 카테고리의 다른 글

03. Project 시작 구성-interface 등 구성  (0) 2023.01.19
01. Spring Project 개요  (0) 2023.01.18
09./ Spring Web MVC-Aop  (0) 2023.01.15
02./ Spring folder 구조  (0) 2023.01.14
07./ Spring Web MVC-DB연계-Spring DATA JPA  (0) 2023.01.14