Java/JPA 관련 2

JPA소개

이 글은 자바 ORM 표준 JPA 프로그래밍을 보고 작성한 글 입니다. 혹시 잘못된 내용이 있을 경우 편하게 댓글 달아주시면 감사하겠습니다. SQL 중심적인 개발의 문제 SQL 중심적인 개발을 주로 하던 시절에는 CRUD 쿼리 개발을 중심으로 해야했습니다. INSERT, UPDATE, SELECT, DELETE 등등의 쿼리 작성 데이터가 담겨있는 자바 객체의 속성을, 쿼리 파라미터로 설정하는 로직 쿼리 결과를 다시 자바 객체로 변환하는 로직 작성 등등 비슷하면서 귀찮은 작업들이 정말 많았고, 테이블이 수정될 경우 모든 SQL을 수정해야 하는 경우도 있었습니다. 그래서 전체 개발시간 중 쿼리를 작성하거나, 쿼리와 관련된 자바 코드를 작성하는 시간이 차지하는 비중이 아주 많았습니다. 패러다임의 불일치 객체 ..

Java/JPA 관련 2022.05.10

[JPA] JPA Entity 왜 단일키가 좋은가?

대부분 Entity의 키는 단일키로 하는것이 좋다고 설명합니다. 왜 그럴까요? 제가 봤던 책에서는 Entity의 키에 대해서 다음과 같이 이야기 합니다. (스프링 부트와 AWS로 혼자 구현하는 웹 서비스, 저자 : 이동욱) 왠만하면 Entity의 PK는 Long 타입의 Auto_increment를 추천합니다.(MySQL기준으로는 bigint타입) 주민등록번호와 같이 비즈니스상 유니크키 혹은 복합키로 PK를 잡을 경우 난감한 상황이 종종 발생함 1. FK를 맺을 때 다른 테이블에서 복합키를 모두 갖고있거나, 중간 테이블을 둬야하는 상황이 발생 2. 인덱스에 좋은 영향을 끼치지 못함 3. 유니크한 조건이 변경될 경우, PK전체를 수정해야 하는 일이 발생하나씩 살펴봅시다. 1. FK를 맺을 때 다른 테이블에서..

Java/JPA 관련 2021.10.06