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 작업을 할때 구현체를 직접 작성하지 않아도 됨
반응형
'프로그래밍 > JPA' 카테고리의 다른 글
[JPA] JPA setter 사용하지 않는 이유 (0) | 2023.04.14 |
---|---|
[JPA] Repository find 와 entityManager로 조회하는 것의 차이점 (0) | 2023.04.11 |
[JPA] 복합키 설정 방법(@EmbeddedId, @IdClass) (0) | 2023.03.28 |
[JPA] Order by multiple Columns (0) | 2023.02.24 |
[JPA] ORM이란, JPA 사용 이유? (0) | 2023.01.10 |