개발/부트캠프

본캠프 : 특강

EJ EJ 2025. 2. 11. 21:04

JPA

  • Spring Data JPA의 메서드 명명 규칙에 따라 findByActiveTrue()라는 메서드를 작성하면, 내부적으로 "SELECT * FROM users WHERE active = true" 쿼리가 자동 생성
  • JPA의 엔티티 매핑(Entity Mapping) 기능 덕분에, User 엔티티와 users 테이블의 컬럼이 자동으로 매핑
  • JPA는 내부적으로 Reflection을 사용하여 User 클래스의 필드에 ResultSet 값을 자동으로 채워줌
  • 파라미터 바인딩이 자동으로 처리됨
  • JPA의 메서드 네이밍 전략에 따라, findByRole(String role)을 작성하면 "SELECT * FROM users WHERE role = ?" 쿼리를 자동 생성하고, ? 자리에 role 값을 자동으로 채움
  • 자동 트랜잭션 관리, JPA는 @Transactional이 기본적으로 적용되어 있어, 별도로 트랜잭션을 관리할 필요가 없음. Spring Data JPA가 내부적으로 트랜잭션을 시작하고, 메서드 실행이 끝나면 자동으로 커밋 또는 롤백 수행
  • JPA는 내부적으로 EntityManager가 자동으로 커넥션을 관리하므로 개발자가 직접 관리할 필요가 없음

영속성이 뭔가요?

→ JPA를 공부하기 위해 무조건 알아야할 상식! 1

처음 듣는 말이라면, "지속되는 것" 이라고 생각하면 됨

 

하이버 네이트는 또 뭔데요??

→ JPA를 공부하기 위해 무조건 알아야할 상식! 2

  • 하이버네이트는 "자바에서 데이터베이스와 객체(엔티티)를 쉽게 연결해주는 ORM(Object-Relational Mapping) 프레임워크"
  • 과거에는 데이터베이스와 연동하려면 JDBC를 사용해서 SQL을 직접 작성
  • 하이버네이트는 JPA를 구현한 대표적인 프레임워크!!