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를 구현한 대표적인 프레임워크!!
'개발 > 부트캠프' 카테고리의 다른 글
본캠프 : 개인 과제(일정 관리 앱-Develop 만들기) 트러블 슈팅 (0) | 2025.02.13 |
---|---|
본캠프 : Spring 숙련_Bean Validation (0) | 2025.02.12 |
본캠프 : 특강_협업 관점에서의 Git (0) | 2025.02.10 |
본캠프 : Spring 숙련_특강_JPA를 활용한 프로젝트 / 전반적인 작업 과정 (0) | 2025.02.07 |
본캠프 : Spring 숙련_3주차 실습 (0) | 2025.02.06 |