inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

제네릭을 적용한 BaseEntity 응용에 관한 질문입니다.

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

명강의 남겨주신 김영한 강사님 Respect 합니다. 모든 JPA 강의는 패스했고 Spring MVC 고급편 듣고있습니다요. 좋은강의 감사드립니다. 제가 예제 응용시 BaseEntity 를 확장해보려고 예제 작성중에 몇가지 궁금증이 생겨 이렇게 질문을 남기게 되었습니다. 아래는 클래스 계층구조입니다. 위에서 BaseEntity 를 타입 파라미터를 적용하여 하위 엔티티를 추상 계층에서 핸들링 하기위해 아래와 같이 BaseEntity 에 제네릭을 적용 해봤습니다. 아래는 BaseEntity 선언부 입니다. public abstract class BaseEntity < T extends BaseEntity < T >> public abstract class BaseEntity < T extends BaseEntity < ? extends BaseEntity < T >>> 여기서 너무나도 햇갈리게 되었는데요, 딱히 컴파일 시 애러가 나지는 않았음에도 불구하고, 초반에는 1번처럼 작성했다가, 나중에 2번으로 바꾸게 되었는데요, 이유는 와일드카드 ? 가 안전하다고 해서 적용하게 되었는데, 컴파일 애러는 안나지만 불안감이 들어서 질문하게 되었습니다. 사실, 이렇게 BaseEntity 제네릭타입 선언부를 수정하게 된 배경은 BaseEntity 를 바탕으로 BaseService 도 만들게 되었는데요 1번처럼 BaseEntity 작성시 서비스를 아래와 같이 작성해 보았더니 적용에 문제가 있었기 때문입니다. public abstract class BaseService < E extends BaseEntity < E > , DTO > { 그래서 타입 E 를 와일드 카드를 적용했더니 아래와 같이 바꿨더니 문제가 없었습니다 public abstract class BaseService < E extends BaseEntity < ? > , DTO > { 이 부분때문에 Entity 까지 손보게 되었던 것이었죠... 제네릭 너무너무 햇갈립니다. 선언하기 부터 맨붕이예요... 상속구조의 제네릭 클래스 예시를 찾기가 어려워 이렇게 남기게 되었습니다. 질문입니다. 위 BaseEntity 제네릭 적용에 두가지 선언 방식은 왜 다른걸까요... 제눈에는 `BaseEntity 를 상속받은 타입` 이라는 논리가 같아보여서 질문하게 되었습니다. 강사님이시면 좀더 어떤 효과적인 방식으로 구성하실지 견해를 배우고 싶습니다. 몇번을 다시봐도 배울게 많은 강의 항상 고맙습니다. 읽어주셔서 감사드립니다.

  • BaseEntity
  • java
  • BaseService
  • 제네릭엔티티
  • JPA
  • GenericBaseEntity
Truestar 댓글 1 좋아요 0 조회수 660

인기 태그

인프런 TOP Writers

주간 인기글