반응형
jpql 에서 inner class로 데이터를 받고 싶은 경우가 있다.
@Query에서 dto로 바로 받을 수 있는데, 이 때 .으로 inner class를 표시하면 아래와 같이 에러가 난다.
java.lang.IllegalArgumentException: org.hibernate.QueryException: could not instantiate class
static inner class를 지칭할 때는 . 이 아닌 $로 해야한다.
public class MoneyExchangeAllResponse {
private Data total;
@Getter
@Setter
public static class Data{
private Long user;
private Long count;
private Long money;
private Long fee;
public Data(Long user, Long count, Long money, Long fee) {
this.user = user;
this.count = count;
this.money = money;
this.fee = fee;
}
}
}
@Query(value = "select new com.event.moneyexchange.MoneyExchangeAllResponse$Data( "
")
...
그리고 jqpl의 count는 long을 반환한다..ㅋ
728x90
반응형
'개발 > spring' 카테고리의 다른 글
[ssl-https] in localhost (0) | 2023.01.02 |
---|---|
[spring-jpa] constructor에는 쿼리 결과만 (0) | 2022.12.13 |
[ExceptionHandler] 컨트롤러 에러처리 (0) | 2022.11.23 |
[web] file download inside jar (0) | 2022.11.02 |
[request part] file upload (0) | 2022.10.31 |