JPA

해당 글 스프링의 엔티티매니저 관리와 상관 없는 기초적인 JPA의 동작 원리를 기술하고 있습니다.1. 기본 개념JPA (Java Persistence API)는 관계형 데이터베이스를 사용하는 방식을 정의하는 인터페이스로, Java ORM 기술의 표준 명세라고 할 수 있습니다.💡 ORM(Object Relational Mapping)객체를 통해 간접적으로 DB 데이터를 다루는 방법으로, DB 데이터와 Object 필드를 매핑합니다.예) JPA, Hibernate💡 SQL MapperSQL문으로 DB를 직접 조작합니다.예) MyBatis, jdbcTemplate JPA를 다룰 때 필요한 엔티티 매니저(EntityManager)는 인터페이스로 정의되어 있습니다.public interface EntityMa..
문제 상황게시글을 조회할 때 관련된 좋아요, 해시태그, 카테고리 정보를 함께 조회하면서 페이징처리까지 하는 api가 있습니다.이 때, 게시글의 입장에서 좋아요와 해시태그는 ~toMany 관계이고, 카테고리는 ~toOne의 관계입니다.보통 N+1 문제를 피하기 위해서 연관된 엔티티를 함께 영속화 시키기 위해 lazy loading + fetch join을 사용하는데요, fetch join은 JPA의 Pageable과 함께 사용할 때 문제가 생깁니다. ✔️ 문제 쿼리@Query(value = "select b from Board b " + "join fetch b.category " + "left join fetch b.likes " + "le..
달래dallae
'JPA' 태그의 글 목록