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

kim1234123님의 프로필 이미지
kim1234123

작성한 질문수

실전! 스프링 데이터 JPA

질문 join

작성

·

318

·

수정됨

0

@Entity
public class board {

    @Id @GeneratedValue
    @Column(name = "bno")
    private Long id;
    private String filename;
}


file에서 board를 join했습니다.


    @Query("select f from file f join fetch f.board on f.board =: bno")
    List<file> findByBno(@Param("bno") int bno);
}

이부분에서 int로 board.getId 로 넘겨서 위와같이 join을 하고 싶은데 안됩니다

board의 pk값을 file에서 where을 걸었는데 안됩니다.

오류 :Caused by: java.lang.IllegalArgumentException

답변 1

0

안녕하세요, jacomyou 님. 공식 서포터즈 y2gcoder 입니다.

제가 요구사항과 작성하신 설계 구조를 정확하게 파악한 것은 아닌 상태에서 조심스럽게 추측해보자면,

file 엔티티에서 board 를 매핑할 때 아마 pk가 아닌 Board 엔티티로 매핑하셨을 것 같습니다. 그러면

JPQL을

select f from file f join fetch f.board on f.board =: bno

에서

select f from file f join fetch f.board on f.board.id =: bno

와 같은 형식으로 바꿔주시면 될 것 같다는 생각이 듭니다.

별개로 하나만 조심스럽게 제안을 드리자면

file 클래스명을 File로 바꿔주시면 더 편안할 것 같습니다 :)



감사합니다.

kim1234123님의 프로필 이미지
kim1234123

작성한 질문수

질문하기