JPA

Spring

여러분들은 동적 쿼리 어떻게 쓰시나요? (우리 팀에서Jpa Criteria 를 선택한 이유)

오늘은 자바에서 사용할 수 있는 다양한 동적 쿼리 방법을 알아보고, 왜 Jpa Criteria를 선택했는지 말씀드리려고 합니다 이번에 프로젝트에서 어드민 페이지를 만들던 과정에서 여러 가지 조건으로 필터링되어야 하는 데이터를 쿼리 할 필요가 생겼습니다. 상태가 성공인 데이터를 여러 조건에 맞게 조회해야 하는데요 원본 데이터는 총 3000건 정도이고, 상태가 성공인 건은 1500건 정도입니다. 처음에 생각했던 방법은 총 5가지 정도가 있었습니다. 동적 쿼리의 종류 1. findAll을 사용한 이후에 Application에서 처리한다 @Component class ApplicationQuery( private val userRepository: UserRepository ) { fun findUserByNa..

Spring

테이블을 병합할 때, Auto Increment를 주의하자

문제 상황 같은 형태의 테이블 2개를 하나의 테이블로 합쳤을 때, Auto Increment 때문에 생길 수 있는 문제에 대해서 정리를 해보려고 합니다 편의를 위해서 정말 간단한 엔티티로 설명을 드리도록 하겠습니다 @NoArgsConstructor @AllArgsConstructor @Getter @Entity @Table(name = "transaction_data") public class TransactionData { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String name; public TransactionData(String name) { thi..

우아한테크코스

"[DB] 대량의 데이터를 DB에 넣는 과정을 최적화해보자"

안녕하세요 우아한테크코스 카페인팀 누누입니다 이번에는 대량의 데이터를 DB에 넣는 과정을 최적화하는 과정에서 알게 된 내용을 공유하려고 합니다 이번 최적화의 목표 전기차 충전소에 대한 공공 데이터를 가져오고, 그 데이터를 DB 에 넣는 과정을 최적화해보자 대량의 데이터를 삽입하는 과정 저희 팀의 요구사항을 간단하게 정리하면 다음과 같습니다 대량의 데이터를 공공 데이터에서 전기차 충전소와 전기차 충전기에 대한 데이터를 가져온다 충전소는 6만 개, 충전기는 23만 개의 데이터가 존재한다. 한 번에 가져올 수 있는 양은 9999개 까지다. 이 데이터를 DB에 넣는다 충전소와 충전기는 1:N 관계이다 최적화 전은 어떤 상황이었는데? 위 사진을 잘 보시면 아실 수 있으시겠지만, 2000개를 저장하는데, 231.7..

우아한테크코스

DB 에 변경된 부분만 업데이트 하려면(feat Proxy 객체, 변경감지)

JPA를 사용하지 않으면 어떻게 변경 감지를 해야 하지?? 변경감지는 어떻게 만들어져 있을까 생각해 보면서 작성한 코드이기에, 부족한 점이 많을 수 있습니다 나왔던 코드는 대부분 간소화된 코드입니다! 미리 잘 부탁드립니다 간단한 테이블 소개 노선과 구간이 1:N의 관계로 엮여있습니다 역과 구간이 1:N의 관계로 2번 엮여 있습니다 단 3개의 테이블만으로 이루어진 간단한 상황이라는 것을 기억해 주시면 좋을 것 같습니다 간단한 문제 상황 소개 처음에 코드를 짰을 때 도메인 엔티티에서 어떤 부분이 변경되어서 직접 저장해야 하는지를 파악할 방법을 쉽게 떠올리지 못해서, 가장 편한 방법을 거쳤는데요 도메인 엔티티를 변경하게 된 경우에, db에 저장하는 과정에서, 모두 삭제하고, 모두 새롭게 저장하는 과정을 거쳤습..

be-student
'JPA' 태그의 글 목록