Spring Framework

Spring Framework/JPA

[JPA] Spring 엔티티 컬럼 기본값 설정하기 - @DynamicInsert, @ColumnDefault, @Builder.Default

JPA 기본전략을 이해하고 데이터베이스 Default 값 설정 및 데이터 저장 시 설정한 기본값으로 저장하는 방법에 대해 정리하고자 합니다.!!문제 상황Spring Data JPA 라이브러리 ORM을 통해 데이터베이스 기본값을 설정하는데 올바르게 설정되지 않는 문제가 있었습니다. 기존 코드@Entity@Getter@Builder(toBuilder = true)@AllArgsConstructor@NoArgsConstructor(access = AccessLevel.PROTECTED)@Table(name = "application_tb")public class Application extends BaseTimeEntity { @Id @GeneratedValue(strategy = Generatio..

Spring Framework/QueryDSL

[QueryDsl] QueryDsl groupBy 여러 개 적용하기

Spring Data Jpa를 사용하는 중 Kindergarten, Recruit, Lottery의 3개의 엔티티를 통해 2개의 조건을 그룹핑하고 Count() 해야 하는 쿼리가 필요했습니다.이를 JPA를 작성하는 경우 긴 JPQL 코드로 가독성이 떨어지고 제대로 작성되었는지 컴파일 시점에서 문법 오류가 불가능하다고 생각되어, QueryDsl을 통해 위 문제를 해결하면서 필요한 쿼리를 생성하였습니다.배운 점ORM을 통한 2개의 그룹핑과 개수 카운트 및 총 개수 구하기실제 SQL 쿼리 작성과 공식문서를 통해 지원하는 기능 적용하여 해결하기불변성 객체를 유지하면서 Response DTO로 파싱 하기쿼리 확인하기 실제 SQL 작성select r.kindergarten_id, r.age_class, count(..

Spring Framework/QueryDSL

[QueryDsl] QueryDsl 페이징, 검색, 필터링 쿼리 구현 - 페이징 최적화, BooleanExpression

배운 점 및 느낀 점기존에는 편리한 Spring Data JPA만 사용하다가 “가독성 측면”, “컴파일 시점에서 오류 확인”, “조건 메서드 재사용” 등 여러 장점을 가진 QueryDSL을 사용하게 되었습니다. 페이징, 검색, 필터링 조건을 적용한 쿼리문을 작성하면서 QueryDSL을 사용하는 이유와 장점을 느꼈습니다. 이를 통해 상황에 따라 효율적으로 Spring Data JPA와 QueryDSL을 사용할 수 있게 되었습니다.익힌 QueryDSL1. PageableExecutionUtils을 통해 Count 쿼리 최적화2. 검색 및 필터링 조건 적용3. DTO 클래스로 한 번에 변환Controller: 검색, 필터링, 페이징 API@GetMapping("/recruits/applications")pub..

Spring Framework/Spring

[Spring] Spring으로 HTML 파일 PDF 변환, 다운로드하기 - 한글 깨짐 문제, Thymeleaf, PDF 변환 해결

PDF 파일 다운로드 API1단계데이터베이스에서 PDF 파일에 넣을 데이터 조회하기2단계조회한 데이터를 Thymeleaf 템플릿 엔진을 통해 HTML에 랜더링 해주기3단계생성된 HTML를 “flying-saucer-pdf” 라이브러리를 통해 PDF 파일로 변환하기(위 라이브러리 말고도 “itextpdf”가 있음) build.gradle// pdfimplementation("org.xhtmlrenderer:flying-saucer-pdf:9.1.20")https://mvnrepository.com/artifact/org.xhtmlrenderer/flying-saucer-pdf PdfController.class@Operation(summary = "모집 결과 PDF 파일로 다운하기", description..

kylo
'Spring Framework' 카테고리의 글 목록 (9 Page)