상속 4

[JAVA] @MappedSuperclass

공통 매핑 정보가 필요할 때 사용한다.( id, name 과 같은 ) : DB 에서는 다른 컬럼이지만 객체에서 반복적으로 사용될때 ( 귀찮음을 줄이기 위한 것 ) 상속관계 매핑 불가. 엔티티, 테이블과 매핑이 불가하다 부모클래스를 상속 받는 자식 클래스에 매핑 정보만 제공한다. 조회, 검색이 불가(em.find(BaseEntity) X) 직접 생성해서 사용할 일이 없으므로 추상 클래스 권장 예시 ) 만약 Member와 Team 테이블에 생성한 사람, 생성날짜, 수정한 사람 , 수정 날짜 를 공통적으로 사용하고 싶다면? 1. BaseEntity 생성 package hellojpa; import javax.persistence.MappedSuperclass; import java.time.LocalDateT..

JAVA 2022.01.04

[JAVA] JPA 고급 매핑 (상속 관계 매핑)

상속관계 매핑 관계형 데이터 베이스는 상속 관계를 구현 할 수 없다는 단점을 가지고 있다. 그나마 슈퍼타입, 서브타입 관계가 객체 상속과 유사하다. 슈퍼타입, 서브타입 논리모델을 실제 물리 모델로 구현하는 방법 각각 테이블로 변환 : 조인 전략(Joined) 통합 테이블로 변환 : 단일 테이블 전략 서브타입 테이블로 변환 : 구현 클래스마다 테이블 전략 매핑 시 주로 사용하는 어노테이션 1. @Inheritance(strategy=InheritanceType.XXXX) JOINED : 조인 전략 SINGLE_TABLE : 단일 테이블 전략 TABLE_PER_CLASS : 구현 클래스마다 테이블 전략 2. @DiscriminatorColumn(name="DTYPE") → default가 DTYPE 3. @..

JAVA 2021.12.16

[JAVA] 추상화

추상은 여러 객체의 공통되는 특성만을 추출한 것 추상화는 abstract 가 붙는다. 추상 클래스는 객체화가 불가능 하다. ( 단, 자식이 오버라이드 하여 사용 할 수 있음 ) 추상 클래스는 실체 클래스와 상속관계! - Main Class package chapter06.exam02.absmethod; public class Main { public static void main(String[] args) { Child drum = new Child(); //추상 메서드를 구현한 내용은 자식으로 오버라이드 받아 사용해야함 drum.세탁(); drum.헹구기(); drum.탈수하기(); //추상 클래스의 일반 메서드 호출 drum.건조하기(); } } - Child Class package chapter0..

JAVA 2021.03.24

[JAVA] 상속

1. 상속이란? 기존의 클래스를 재사용하여 새로운 서브 클래스 작성하는 것을 말한다. 멤버의 모호성을 없애기 위해 , 다중 상속은 허용 불가(한번에 다중 상속 불가 여러 대에 걸쳐는 가능) ex) 클래스 + extends + 상속받을 부모 클래스 이름 자식 클래스는 부모의 메소드를 상속받아 사용이 가능하지만, private멤버는 상속을 받을 수는 있지만 자식클래스에서 접근은 불가능하다. - Main Class package chap05.exam01.inherit; public class Main { public static void main(String[] args) { Person person = new Person(); //person 객체생성 /*Mamal의 메서드->Person은..

JAVA 2021.03.24