entity5 Spring JPA / 즉시 로딩과 지연 로딩 (with N+1 문제, 프록시 객체) 안녕하세요. 이번 포스팅에서는 JPA의 다양한 연관관계에서 데이터를 가져오는 두가지 방법인 지연 로딩과 즉시 로딩에 대한 개념을 작성을 하도록 하겠습니다. 프로젝트를 진행을 하다보면 두 테이블 또는 여러 테이블들을 조인하는 구조가 발생을 하게 되며 JPA로 구현을 할 때 앞서 포스팅한 여러 연관관계를 사용하여 데이터를 가져와야하는 경우가 많이 생기게 됩니다. 이렇게 연관관계에 있는 엔티티들을 조회할 때 두 테이블을 조인해서 한번에 데이터를 모두 가져오는 방법과 연관관계에 있는 엔티티에 접근을 할 때 조회를 하는 방법 두가지 옵션이 있습니다. 예를 들어 A라는 부모 개념인 엔티티와 B라는 자식 개념의 엔티티가 존재한다고 했을 때 A 엔티티의 특정 시퀀스로 데이터를 조회할 때 연관관계에 있는 B 엔티티의 데.. 2023. 7. 31. Spring JPA / 양방향 연관관계 주의사항 안녕하세요. 지난 포스팅에서는 JPA Entity의 연관관계에 대해서 작성을 했었는데요. 포스팅 마지막 부분에서 양방향 연관관계의 주인을 설정하는 방법까지 작성을 했었습니다. 이번 포스팅에서는 양방향 연관관계에서의 주의사항을 이어서 작성을 하도록 하겠습니다. 양방향 연관관계 사용 시 주의 사항 1. 객체 지향적 코드를 생각을 했을 때는 양방향 객체 참조 필드 모두 값을 넣어주는게 좋다. public class TestService { public void entityTest(){ // 엔티티 매니저 객체 생성 EntityManager em = emf.createEntityManager(); // 트랜잭션 시작 em.getTransaction().begin(); Team team = new Team(); .. 2023. 6. 27. Spring JPA / Entity 연관관계 지난 포스팅에서는 JPA의 Entity에 대해서 작성을 했었는데요. Entity란 JPA에서 관리하는 DB와 매핑이 되는 객체를 뜻하며 객체 클래스 위에 @Entity을 사용해서 JPA에게 '해당 객체는 Entity로 사용을 할 것이다' 라고 명시를 했습니다. 그렇다면 이번 포스팅에서는 'JPA에서는 DB의 연관 관계를 어떻게 사용을 하는 것인가?', '두개의 테이블을 join을 어떻게 객체화 시키지?' 라는 주제로 Entity의 연관 관계에 대해서 알아보도록 하겠습니다. RDB Table의 연관관계 프로젝트에서 사용하는 DB는 Mysql, MariaDB, Oracle 등 RDB (관계형 데이터 베이스)를 사용을 하는데 이러한 RDB에서는 FK (Foreign Key)를 사용해서 두 테이블간의 연관 관계.. 2023. 6. 27. Spring JPA / Entity 매핑 안녕하세요. 지난 JPA 포스팅에 이어서 이번 포스팅에는 JPA의 Entity 매핑에 대해서 작성을 하려고 합니다. JPA를 사용하면서 다양한 어노테이션을 사용을 해야하는데 오늘은 JPA에서 사용하는 어노테이션들과 어떻게 java 객체가 DB와 매핑이 되는지 작성을 하겠습니다. @Entity - Entity(엔티티)란 JPA에서 관리하는 DB와 매핑되는 객체를 뜻합니다. - JPA에서 DB 테이블과 매핑할 객체의 클래스에는 @Entity 어노테이션 사용 - Entity 클래스에서는 기본 생성자가 반드시 있어야 하며 final, enum, interface, inner 클래스는 사용할 수 없다. - name 옵션으로 JPA에서 사용할 엔티티 이름을 지정할 수 있다. @Table - Entity와 매핑할 테.. 2023. 6. 21. Spring JPA / JPA 안녕하세요. 예전에 JDBC, JdbcTemplate, Mybatis까지의 포스팅을 했었는데요. 이번에는 최근(?)이라기 보다는 몇년 전부터 떠오르고 있는 JPA에 대해서 작성을 하려고 합니다. 아직 대부분의 회사에서 Mybatis를 사용하는거로 알고있는데 JPA는 우아한 형제들, 쿠팡 등 규모가 있는 회사에서 JPA를 사용을 하고 있고 또 많은 기업들이 JPA로 개발을 하려는 시도를 하고 있다고 생각을 하고 있습니다. 저도 회사에서 JPA를 사용을 하다가 Mysql의 Stored procedure로 전환을 하면서 최근에는 회사 프로젝트에서 JPA를 사용할 일이 많이 없어졌지만 그래도 꾸준히 JPA를 공부를 하면서 다시 프로젝트에 적용 시킬 준비를 하고 있습니다. JPA JPA는 Java Persiste.. 2023. 6. 20. 이전 1 다음