인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

slr과르님의 프로필 이미지
slr과르

작성한 질문수

스프링 데이터 JPA

스프링 데이터 Common 8. 기본 리포지토리 커스터마이징

MyRepository 작성 관련 질문 드립니다.

작성

·

156

0

MyRepository 인터페이스를 만들때, Serializable을 상속받아 구현하는데, 어떤 이유로 해당 class를 상속 받는지 궁금합니다.

늘 강의 잘 듣고 있습니다.

답변 1

2

백기선님의 프로필 이미지
백기선
지식공유자

정확히는 MyRepository가 사용하는 제네릭 타입 중에 주키인 ID를 나타낼 타입이 Serializable의 하위 타입이어야 한다고 선언한 것입니다. MyRepository가 Seiralizable을 상속 받아 구현한게 아닙니다.

굳이 ID extends Serializable을 하지 않고 그냥 ID라고만 해도 코드가 동작하는데 대부분의 경우에 별 문제는 없을 겁니다. JPA 스팩에서 주키 타입을 맵핑하는 자바 타입은 반드시 Serializale 타입이어야 하기 때문에 그 제약에 따라 ID 타입을 그렇게 정의한 것입니다.

다시, 보통 우리가 사용하는 Integer나 Long, String 대부분이 Serializable 인터페이스를 마커로 가지고 있기 때문에 대부분의 경우엔 명시 하지 않아도 별 문제 없지만 그래도 스팩에 따라 명확히 명시하기 위한 것 뿐입니다.

slr과르님의 프로필 이미지
slr과르

작성한 질문수

질문하기