본문 바로가기
반응형

JPA8

[JPA] Converter 활용하기 Converter 활용을 통한 내용을 일전에 작성한적이 있었습니다. - [리팩토링] 코드 JPA Converter 두번째 내용으로 @Enumerated 를 활용할 수 없을때 @Converter 를 활용하는 방법에 대해서 공유드리려고 합니다. Jpa에서 Enum 활용 하나의 필드가 요소, 멤버라 불리는 명명된 값의 집합을 이루는 상수 역할을 하는 식별자가 필요할 때 enum과 @Enumerated 를 활용하였습니다. 예를 들어, 아이템을 저장하는 테이블에는 아이템의 상태를 관리하는 필드가 있습니다. Status 라는 필드는 활성화(ENABLE)와 비활성화(DISABLE) 상태를 갖고 있습니다. public enum Status { ENABLE, DISABLE } 그래서 해당 필드는 @Enum.. 2022. 8. 21.
[Spring&JPA] 이력 구현해보기 데이터베이스를 사용하면서 이력 관리를 위해서 이력 테이블을 사용하는 일들이 많이 있습니다. 먼저 이력 관리에 대해서 알아보고 이력의 종류는 어떤것이 있는지도 알아보겠습니다. 그리고 마지막으로 이력 관리를 위한 구현 방법에 대해서 알아보겠습니다. 이력 관리 데이터는 현재의 프로세스만 처리하고 버리는 것이 아니라 각 상태의 따른 데이터를 처리 및 기록합니다. 예를 들어, 주문 상태의 따른 이력 정보가 있다고 가정하였을 때, 이 주문 정보는 임시저장, 주문 등록, 주문 접수, 진행 중, 주문 완료, 주문 취소 등 각각의 상태에 따라 이력이 관리 됩니다. 이렇게 각 상태의 대한 이력을 기록하고 관리하는 것을 이력 관리라고 합니다. 이력 관리 대상 선정 이력 관리를 한다고 하면 하지 않았을 때와 비교하였을 때 많.. 2022. 8. 21.
[Oracle19c] MacOS docker 설치 JPA 실습을 위해서 테스트용 Oracle 데이터베이스가 필요하였습니다. 실제 프로젝트에서는 Oracle 12c를 많이 사용하겠지만, Oracle 12c의 Enterprise Edition이 이번에 EOS 가 되었습니다. EOS를 확인해볼 수 있는 사이트는 다음과 같습니다. - Oracle EOS 확인 사이트에 접속하면 Oracle에서 제공하는 다양한 제품군에 대해서 서비스 지원에 관한 내용을 확인해볼 수 있습니다. 특히 Oracle Database의 경우, Oracle Technology Products (PDF) 에서 확인할 수 있습니다. Oracle Database Releases의 Enterprise Edition 12.1 버전의 EOS가 2022.07에 끝나는 것을 확인할 수 있습니다. 그래서,.. 2022. 7. 23.
[JPA] 엔티티 식별자 생성 방식 테이블을 설계하면서 기본키는 어떠한 논리적 근거를 가지고 설계를 해야할까요? 먼저 기본키의 제약 조건의 특징부터 알아본다면 다음과 같습니다. null일 수 없습니다. 유일해야 합니다. 변하면 안됩니다. 그래서, 이러한 값을 현실세계에서의 값을 가져와서 기본키로 설정하곤 합니다. 주민등록번호 사원번호 주문번호 등등 다음 보도자료는 주민등록번호를 금지하는 제도입니다. - 주민등록번호, 이제는 함부로 수집하지 못한다! 이 제도 도입을 통해서 기존에 주민등록번호를 기본키로 설정한 시스템들은 힘들게 수정을 하였을 것입니다. 기본키는 수많은 외래키와 인덱스와 연관관계가 있기 때문에 수정을 하는 것에 있어서 많은 문제를 불러올 수 있습니다. 그리고 지금 현실세계에서 주민등록번호 또는 사원번호가 기본키를 만족할지 몰라.. 2022. 7. 9.
[리팩토링] 코드 JPA Converter 회사에서 개발 중인 소스를 살펴보면서 리팩토링할 영역을 찾아보다가 JPA Converter를 활용하여서 변경할 포인트를 찾게 되어서 해당 내용을 공유하려고 합니다. 아래에서 공유하는 내용은 실제 회사에서 개발하는 내용은 아니며 재구성한 것입니다. 모든 소스는 GitHub를 통해서 확인하실 수 있습니다. - 링크 개발 환경 JDK 11 Spring Boot 2.6.4 IntelliJ IDEA 상황 사용자 도메인이 아래와 같이 존재합니다. 그 중 hobby 필드는 다음과 같이 Database에 저장됩니다. 기능 hobby 필드를 이용한 조회 기능은 다음과 같습니다. 취미를 입력 받는다. 입력 받은 취미로 해당 취미를 보유한 사용자를 조회한다. 사용자의 저장된 hobby 필드 중에 일치하는 취미가 하나라도 있.. 2022. 3. 5.
[JPA] 상속 전략 정리 JPA에서 상속 관계 전략을 세우는 방법 정리 자바에서 상속의 대해서는 많이 접해보았지만 최근 JPA를 통해서 상속에 대해서 어떻게 대응을 해야되는지 공부를 하다가 관련 내용을 정리하려고 합니다. 자바 ORM 표준 JPA 프로그래밍에서는 다음과 같이 설명을 하고 있습니다. 관계형 데이터베이스에는 객체지향 언어에서 다루는 상속이라는 개념이 없다. 대신에 슈퍼타입과 서브타입 관계라는 모델링 기법이 객체의 상속 개념과 가장 유사하다. ORM에서 이야기하는 상속 관계 매핑은 객체의 상속 구조와 데이터베이스의 슈퍼타입 서브타입 관계를 매핑하는 것이다. 그렇다면 객체의 상속 관계 매핑을 위해서 어떻게 해야 할까요? 슈퍼타입 서브타입 논리 모델을 실제 물리 모델인 테이블로 구현하기 위해서는 3가지 방법을 선택할 수 .. 2022. 2. 6.
반응형