@Controller
public class **HomeController** {
@Autowired
private MemberService memberService;
@PostMapping("/join")
public String join(JpaMember member) {
memberService.**save**(member);
return "home";
}
}
@Service
@RequiredArgsConstructor // 여기 있는 모든 것에 대해 생성자를 만들어줌
public class **MemberService** {
// final 과 @RequiredArgsConstructor 같이 쓰면 @Autowired 와 같은 역할
private final MemberRepository memberRepository;
// 추가
public void save(JpaMember member) {
memberRepository.**save**(member); // insert 할거면 꼭 save 라고 해야돼 -> 규칙을 잘 지켜야함
}
}
// <내가 쓸 것(?), 기본키의 형태>
public interface **MemberRepository** extends JpaRepository<JpaMember, Long>{
}
JpaRepository<T, ID> : 클릭해서 들어가보면
우리가 수없이 작성했던..메소드 이름이 있다. 자주 쓰는 걸 미리 정의해둔걸까?
출처: https://jobc.tistory.com/120
submit 버튼을 누르면 콘솔에 아래와 같이 뜬다
설정 파일의 spring.jpa.show-sql=true
이 부분 때문임
🤔 Hibernate 는 머람?
JPA 라는 명세(인터페이스?)의 구현체
JPA와 Hibernate는 마치 자바의 interface와 해당 interface를 구현한 class와 같은 관계
출처 : https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/