JPA3 [JPA] batchsize JPA을 사용할때 n+1문제를 극복하고자 지연로딩(FetchType.LAZY)를 사용하는데 이 역시 프록시를 초기화 실제 엔티티로 초기화 해야 하는 상황이라면 n+1문제가 발생하는건 마찬가지이다. n+1문제 해결과 조회 성능 향상의 목적으로 사용하는 것이 BatchSize이다 일반적으로 어노테이션, 외부설정파일을 통해 설정하며 연관관계의 초기화 대상 엔티티의 개수만큼 조회 쿼리가 발생하는 상황에 설정한 일정량의 데이터를 한 번에 로딩한다.@Entity @Table("member")@Getter @Setter@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Member { @Id @Column(name = "member_id".. 2024. 5. 1. [JPA] 일반필드와 컬럼 매핑 JPA에서는 엔티티의 필드와 DB의 컬럼을 매핑하여 사용하는데 주로 애노테이션 기반으로 매핑이 가능하다. DDL 생성 기능을 사용할때도 옵션 추가가 가능한데 DDL 생성 기능은 제외하고 기본적인 필드와 컬럼의 매핑 방법에 알아보자 @Column 필드와 매핑할 테이블의 컬럼이름을 직접 입력해야 할 때 사용한다. 등록, 변경에 가능 여부를 옵션으로 부여 가능하다. @Entity public class Member { @Column(name = "name", insertable = false, updatable = false) private String userName; } name : 매핑 대상의 컬럼명을 직접 입력한다. insertable : default는 true로 insert쿼리의 대상이 됐을 때 입.. 2022. 8. 20. [JPA] 영속성 컨텍스트 영속성 컨텍스트는 Entity를 저장하고 관리하는 논리적인 환경으로 엔티티 매니저를 통해 영속성 컨텍스트에 접근한다. 영속성 컨텍스트의 특징과 이점을 알아보자! 엔티티의 생명주기 비영속(new/transient) - 객체를 생성은 했으나 영속성컨텍스트에서 관리되지 않는 새로운 상태 User user = new User(); user.setName("jang"); user.setAge(29); 영속(managed) - 영속성 컨텍스트에 관리되고 있는 상태로 객체가 생성되어 영속성컨텍스트에 포함되어 있다. User user = new User(); user.setName("jang"); user.setAge(29); EntityManager em = createEntity....(); em.getTransa.. 2022. 8. 9. 이전 1 다음