Spring/JPA

· Spring/JPA
🎯 N+1 을 해결하기 위한 fetchJoinfetchJoin() 은 일대다 연관관계에서 N + 1 문제를 해결하기 위해 한번의 쿼리로 두개의 테이블을 Join 해 데이터를 가져오는 방법 입니다. 아래 코드에서는 Home 과 HomeImage 가 1:N 연관관계 매핑이 되어 있어 이를 해결하기 위해 fetchJoin 을 사용했습니다.  ✅ HomeEntity@Entity@Getter@Builder@Setter@AllArgsConstructor@NoArgsConstructorpublic class Home extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "home_i..
· Spring/JPA
🎯 Tuple 이란 무엇일까 ?Tuple 은 QueryDSL 에서 여러 엔티티나 값들을 한 번에 조회하고 그 결과를 하나의 객체로 묶어서 반환할 때 사용되는 자료형 입니다. 이를 통해 여러 컬림이나 객체를 하나의 결과를 처리할 수 있습니다. 특히 Tuple 은 SQL 쿼리에서 여러개의 값을 조회할 때 유용하게 쓰입니다. 또한 Tuple 은 단순한 데이터 타입 뿐만 아니라, 엔티티 객체와 값 객체 등 다양한 타입을 포함할 수 있습니다. 그리고 Tuple 은 여러 컬럼을 조회한 결과를 각각의 값으로 나누지 않고, 하나의 객체로 묶어서 반환하기 때문에 여러 개의 값을 처리 할 때 유용합니다. 🎯 루트 애그리거트(Aggregate Root) 로 설계된 도메인먼저 User(사용자) 도메인과 Home(집 게시글..
· Spring/JPA
🎯 벌크 연산(Bulk Operation)이란?JPA 에서 벌크 연산은 대량의 데이터에 대해 한번에 변경(삽입, 수정, 삭제)을 수행하는 방법 입니다. 일반적으로 벌크 연산은 많은 양의 데이터를 한 번에 처리해야 할 때 사용합니다. JPA 에서는 JPQL 또는 Criteria API 를 사용해 벌크 연산을 수행하며, 벌크 연산은 성능을 크게 향상 시킬 수 있습니다. 하지만 벌크 연산은 영속성 컨텍스트 (Persistence Context) 를 무시하고 직접 DB 에 접근해 쿼리를 실행하기 때문에 주의할점이 있습니다. 벌크 연산에 특징에 대해 정리하면 다음과 같습니다.✅  영송석 컨텍스트 무시 : 벌크 연산은 영속성 컨텍스트에 있는 엔티티가 아닌 DB 에 직접 수행되므로, 벌크 연산 후에 영속성 컨텍스트..
신민석
'Spring/JPA' 카테고리의 글 목록