작성
·
324
·
수정됨
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로 바꿔주시면 더 편안할 것 같습니다 :)
감사합니다.