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";
}