티스토리 뷰

2022/jpa

day03[상속]

yanii 2022. 11. 30. 11:44

자바에만 상속의 개념이 있고, RDBMS에는 상속의 개념이 없다.

이를 해결하기 위해 3가지 방법이 있다.

1.joined

2.singletable

3.tableperclass (거의 사용안함)

 

@Inheritance(strategy = InheritanceType.JOINED)

joined가 디폴트, 

 

 

joined에서

부모엔티티에서

@DiscriminatorColumn(name = "") // Dtype이 default

자식엔티티에서

@DiscriminatorValue("") // 컬럼에서 나타낼 값을 쓰면 된다.

 

부모엔티티에서

@Inheritance(strategy = InheritanceType.JOINED) 추가

abstract 붙이기

상속관계에서는 @Entity를 붙여주어야 한다.

Employee만 따로 조회하지 않기 때문에 추상클래스로 해야한다.

abstract : 일반클래스와 똑같이 쓸 수 있는데, 추상화가 되어 있으니까 direct로 쓰는 게 아니다,

필드를 자식에게만 주는 용도이다. 직접 접근하지 말고 자식을 통해서 접근해라는 의미.

 

자식으로만 접근하려면 abstract를 붙여서 접근하면 된다.

Employee에서 접근하려면 abstract를 붙이면 안된다.

 

 

 

----------------------------------------------------

세터조인(막조인)

쿼리문에서 join 키워드를 쓰지 않고 from으로 조인한 경우, 

전혀 연관없는 애들끼리 조인할 때 세터조인을 쓴다.

 

정확하게 상속을 했기 때문에 관계가 맺어져야 한다.

 

 

 

 

 

 

'2022 > jpa' 카테고리의 다른 글

day04[Auditing(어디팅)]  (0) 2022.11.30
day04[임베디드, 맵드슈퍼클래스]  (0) 2022.11.30
day03[JPA new project]  (0) 2022.11.30
day03[벌크 연산, Repository, 쿼리메소드]  (0) 2022.11.30
day02[순수jpa, entity]  (0) 2022.11.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함