JPA(Java Persistance API)는 자바에서 객체를 데이터베이스에 저장하고 관리하기 위한 인터페이스와 기능을 제공하는 API이다.
JPA의 RDM 맵핑은 객체와 관계형 데이터베이스 간의 변환을 매끄럽게 처리하여, 개발자가 객체지향적으로 데이터를 다룰 수 있도록 도와준다.
아래의 사진을 참고하면, 엔티티에 Member 객체를 넣어도 DB에서는 author_id로 JPA가 알아서 FK로 처리해주는 것을 알 수 있다.
위에 사진 처럼 리포지토리가 JPA를 상속하면 save, delete, findAll, findById 등 여러 메소드를 편리하게 사용할 수 있다.
또한 쿼리문을 직접 작성할 수 있고, 이때 전달받은 파라미터를 넣어 JPQL쿼리를 작성할 수 있다.
간단하게는
어노테이션을 사용하지 않을 때에는 아래처럼 사용할 수 있다. 자세한 내용은 직접 찾아볼것!
JPQL쿼리를 쓰면 자동으로 트랜잭션을 관리해줘서, 데이터에 오점이 생기는 등의 오류가 나지 않는다.
그러나 JPQL쿼리를 사용하지 않는 경우는 트랜잭션 관리를 따로 해줘야 한다. 이런 경우는 보통 SpringFramework의 @Transactional을 사용한다.
더 자세히 알아보고 싶다면 여기로! => @Transactional
내가 보고싶어서 간단히 정리했는데, 후에 내용을 추가할지도 모른다.