본문 바로가기
728x90

자바ORM표준3

[ JPA ] 상속 관계 매핑 Intro 관계형 데이터베이스에는 객체 지향 언어에서 다루는 상속이라는 개념이 없다. 대신에 슈퍼타입 서브타입 관계라는 모델링 기법이 객체의 상속 개념과 가장 유사하다. ORM에서 이야기하는 상속 관계 매핑은 객체의 상속 구조와 데이터베이스의 슈퍼타입 서브타입 관계를 매핑하는 것이다. 슈퍼타입 서브타입 논리 모델을 실제 물리 모델인 테이블로 구현할 때는 3가지 방법을 선택할 수 있다. 각각의 테이블로 변환 각 테이블을 생성하고 조회할 때 조인을 사용한다. 통합 테이블로 변환 테이블을 하나만 사용해서 통합한다. (JPA에서는 단일 테이블 전략이라 한다.) 서브타입 테이블로 변환 서브 타입마다 하나의 테이블을 만든다. (JPA에서는 구현 클래스마다 테이블 전략이라 한다.) 세 가지 방법 모두 JPA를 통해 .. 2024. 3. 18.
[ JPA ] 연관관계 매핑 기초 연관관계 매핑? 연관관계 매핑이란 객체의 참조와 테이블의 외래 키를 매핑하는 것을 의미한다. JPA에서는 연관 관계에 있는 상대 테이블의 PK를 멤버 변수로 갖지 않고, 엔티티 객체 자체를 통째로 참조한다. 실제로 웹 애플리케이션에서 하나의 엔티티 타입만을 이용하는 경우는 많지 않다. 예를 들어 Member Entity, Team Entity가 있을 때, Team은 여러 Member를 갖는 관계를 가지고 있다. 물론 단순히 참조하는 것만으로는 연관관계를 맺을 수 없다. 매핑하는 방법은 뒤에서 알아보도록 하고, 그전에 연관관계 매핑을 이해하기 위한 3가지 키워드에 대해 알아보자. 방향( Direction ) 방향에는 단방향과 양방향이 있다. 단방향 관계 두 엔티티가 관계를 맺을 때, 한쪽의 엔티티만 참조하.. 2024. 3. 7.
[ JPA ] JPA 소개 JPA? 실무에서 개발을 하다 보면 Mybatis를 활용해서 CRUD 기능을 직접적인 쿼리 작성으로 구현하는 방식을 많이 접할 것이다. 이렇듯 SQL에 의존적인 개발을 피하기 어렵다. 하지만 지금 시대는 객체를 관계형 데이터베이스에 저장하는 방식이고, SQL에 의존적인 개발을 하다 보면 모델링을 할수록 매핑 작업이 늘어나는 과정을 매일 겪을 것이다. 객체를 자바 컬렉션에 저장하듯이 DB에 저장할 수는 없을까? 이러한 고충을 해결할 수 있는 ORM 기술이 JPA(Java Persistence API) 자바 진영의 기술 표준이다. ORM? ORM이란 Object Relational Mapping의 약자로 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 객체 지향 프로그래밍은 클.. 2024. 2. 15.
728x90