일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 정보처리산업기사
- 백준알고리즘
- 공부일지
- 프로그래머스
- kotlin
- 코틀린
- python
- 스프링
- 데이터베이스
- BFS
- MYSQL
- SQL
- 코딩교육봉사
- 파이썬
- java
- 문제풀이
- 백준
- SW봉사
- CJ UNIT
- 코딩봉사
- 알고리즘
- 1과목
- C++
- 백준 알고리즘
- 회고
- softeer
- 소프티어
- 시나공
- programmers
- 자바
Archives
- Today
- Total
JIE0025
Querydsl "No sources given; nested exception is java.lang.IllegalArgumentException: No sources given 본문
개발/이슈, 트러블슈팅
Querydsl "No sources given; nested exception is java.lang.IllegalArgumentException: No sources given
Kangjieun11 2022. 12. 22. 23:07728x90
//private final EntityManager em; //엔티티 매니저를 가져오는게 문제가 됨 >> 비추천
//JPA or JPQL or QueryBuilder (QueryDsl)을 이용해 개선이 필요함
public List<Category> findAll(){
return em.createQuery(
"select c " +
"from Category c " +
"where c.parent is NULL"
,Category.class)
.getResultList();
}
- 앞서 entitymanager를 직접 불러와 사용하는것
- 엔티티는 1개, 레포지토리를 두개씩 만들어 사용한것 (서비스에 2개의 의존 레포지토리가 생겼다)
두가지 문제가 있어서 QueryDSL을 사용해보는겸 개선을 해보고자 했다.
예전에 스터디하면서 정리해놓은 글이 있어 해당 사용방법을 참고했다.
https://jie0025.tistory.com/254
✅ 해결 방법
열심히 적용해봤는데, 요청메세지를 보내면 다음과 같은 Exception이 발생했다.
{
"errorCode": "BAD_REQUEST",
"message": "No sources given; nested exception is java.lang.IllegalArgumentException: No sources given"
}
찾아보니까 QueryDSL 코드를 작성한 곳에 문제가 있었다.>>>> 제일 중요한 from을 안적었다 ㅠㅠㅠ
//틀린코드
@Override
public List<Category> findAll(){
QCategory category = QCategory.category;
List<Category> result = queryFactory
.select(category)
.where(category.parent.isNull())
.fetch();
return result;
}
------------
//from 적어주기
@Override
public List<Category> findAll(){
QCategory category = QCategory.category;
List<Category> result = queryFactory
.select(category)
.from(category)
.where(category.parent.isNull())
.fetch();
return result;
}
✅ 결과
result에 찍어보니까 잘 작동하는걸 확인할 수 있다!!!
'개발 > 이슈, 트러블슈팅' 카테고리의 다른 글
통합테스트에서 데이터베이스 이슈 : 각각은 잘 동작하지만 전체 동작시 실패 (0) | 2023.01.07 |
---|---|
[JPA] object references an unsaved transient instance - save the transient instance before flushing (0) | 2022.12.30 |
[HTTP] 405 Method Not Allowed (0) | 2022.12.17 |
[error] javax.servlet.ServletException: No adapter for handler SpringBoot (0) | 2022.12.17 |
[SpringBoot] build.gradle 설정 오류 (0) | 2022.12.12 |