728x90
반응형

JPA Entity Id를 String 으로 설정하기

사실 entity id 를 String 타입으로 설정할 수 있는가? 에 대해 너무 당연하게 생각할 수도 있으나 조회시에 repository 설정때문에 못찾는 경우를 봤기에 이렇게 작성하게 되었음

 

 


Entity에 Id를 String 타입으로 설정하기

String 타입 외에 어떤 타입이든 설정 가능(물론 복합키도 가능함)

 

그러나 findById를 통해 조회 시에 Long 타입으로 찾아야 한다고 뜬다면?

 


Repository 설정을 찾아보자

아마 JpaRepository 를 상속받는 부분을 보면 이유를 찾을 수 있을 것임

위의 코드에서 보면 MemberRepository는 JpaRepository 인터페이스를 상속받음

이때, Member는 엔티티 클래스이고, Long은 엔티티 클래스의 id 타입을 말함

그렇기에 Member Entity에 id 타입을 String 타입으로 설정했다면 Long 대신 String 을 적어주면 됨

 

예시

@Repository
public interface MemberRepository extends JpaRepository<Member, String>{
	...
}

 


JpaRepository 인터페이스를 사용하는 이유?

자동으로 CRUD 메서드를 생성해주기에 일반적인 CRUD 작업을 할때 구현체를 직접 작성하지 않아도 됨

반응형
복사했습니다!