Home
keencho's blog
Cancel

Hibernate, Spring Data JPA, QueryDSL 에서 UNION 사용하기

JPA 에서 union 사용하기 JPA 환경에서 집합 연산자(UNION, UNION ALL, INTERSECT, EXCEPT)를 사용할 수 있을까요? JPA의 버전이 3.1까지 올라왔어도 아직 이에대한 명세, 지원은 없는 것으로 보입니다. native sql로 작성하면 안되는 쿼리는 없긴 합니다만, 추상화된 SQL을 사용할 수 없다는 단점이 존재합니다...

22년 회고

2022년 어느덧 또 한 해의 마지막 날이 되었다. 아무리 생각해도 12월 31일이 생일이면 나이를 볼 때 너무 손해인것 같다. 갓 성인이 되었을때는 좋았지만 이제는 한살 한살이 큰 부담으로 다가오는것 같다. 그래도 아직 만으로는 20대 중반임에 감사한다. 또 그때 가봐야 알겠지만 내년 6월부터는 만 나이로 통일한다고 하니 기대해 봐야겠다. 19년,...

JPA 3.1

JPA 3.1 Spring 6.0, Spring Boot 3.0 버전이 릴리즈된지 한달이 지났습니다. 현재 날짜 (2022-12-26) 기준으로는 Spring의 경우 6.0.3, Spring Boot의 경우 3.0.1 버전까지 올라왔네요. Spring Boot를 주요 서버 프레임워크로 사용하는 저로써는 Spring Data JPA가 가장 기대됩니다....

Dirty Checking

Dirty Checking 1. 개요 하이버네이트 / jpa를 사용하다보면 이미 저장된 엔티티의 경우 jpa repository의 save() 메소드를 호출하지 않아도 한 트랜잭션이 종료되면 엔티티의 변경점이 자동으로 업데이트되는 현상을 발견할 수 있습니다. var delivery = deliveryRepository.findById(1L).orE...

QueryProjection 에서 한단계 더 나아가 QueryProjectionBuilder 만들기 (2)

QueryProjection 에서 한단계 더 나아가 QueryProjectionBuilder 만들기 (2) - 개발 과정, 코드 이 포스팅에서 설명하는 코드는 한 프로젝트 내에서 사용할 수 없습니다. 라이브러리 프로젝트 A, 실제 어플리케이션 프로젝트 B 로 나뉘어야 합니다. java17, maven 을 사용합니다. 1. @QueryProj...

QueryProjection 에서 한단계 더 나아가 QueryProjectionBuilder 만들기 (1)

QueryProjection 에서 한단계 더 나아가 QueryProjectionBuilder 만들기 (1) - 개요 Querydsl을 사용해 db조회를 하는 경우 엔티티 자체를 반환하는 경우는 잘 없습니다. 대부분 필요한 필드만 지정하여 Projections를 사용하여 조회하게 되는것 같습니다. 잘 알려진 projection 방법에는 3가지가 있습니...

Spring Security custom library 만들기

Spring Security custom library 만들기 운영중인 시스템에 적용된 Spring Security custom library를 제 방식대로 바꿔보고 겸사겸사 Spring Security의 동작 방식, 원리에 대해 더 깊게 공부하고자 작성한 글입니다. 이 포스팅은 Spring Security가 어떤 방식으로 인증 / 인가 처리하...

Hibernate, JPA 에서 발생하는 Cross Join 문제 해결하기

Hibernate, JPA 에서 발생하는 Cross Join 문제 해결하기 개요 평화롭게 코딩하던 어느날, 쿼리 결과가 의도한대로 리턴되지 않는 문제가 발생하였습니다. 쿼리에 문제가 있나 싶어 자세히 살펴봤지만 (queryDSL을 사용중이었습니다.) 자바 코드상의 문제는 찾을 수 없었습니다. 데이터베이스에 날라가는 sql문을 보고 나서야 문제를 찾...

AWS Application Load Balancer에 SSL 인증서 적용하기

AWS Application Load Balancer에 SSL 인증서 적용하기 개요 이 포스팅에서는 .pem 확장자의 인증서를 AWS Application Load Balancer에 적용하는 방법에 대해 설명합니다. AWS ACM이 제공하는 인증서가 아닌 외부에서 ACM으로 가져온 인증서를 적용하는 방법에 대해 설명합니다. 1. AWS Certif...

AWS를 사용해 무중단 배포 자동화 환경 구축하기 - 6. CodeDeploy 연동 / 마무리

AWS를 사용해 무중단 배포 자동화 환경 구축하기 시리즈 개요 VPC와 기본 리소스 VPC와 기본 리소스 생성하기 어플리케이션 구축 및 로드밸런서 적용 AWS 리소스 세팅 CodeDeploy 연동 / 마무리 CodeDeploy 연동 / 마무리 S3 접근 IAM 사용자 생성 무중단 배포의 흐름은 코드 커밋 - 커밋 트리거로 ...