728x90
반응형
Could not locate appropriate constructor on class ...
이러한 에러가 날 때 주요 이유
1. nativeQuery를 써줬는지 확인
@Query(nativeQuery = true) //써줬는지 확인
List<FcltsLogXmlDTO> getFacilityNativeQuery();
2. xml로 사용하는경우 application.yml에 xml매핑을 해줬는지 확인
jpa:
mapping-resources:
- query/named-native-query-sample.xml //확인
3. DTO매핑 맞는지 확인
<sql-result-set-mapping name="facility">
<constructor-result target-class="패키지.FcltsLogXmlDTO"> //패키지 맞는지 확인
<column name = "clctDt" />
<column name = "systemCd" />
<column name = "fcltsDiv" />
<column name = "delYn" />
<column name = "fcltsNm" />
<column name = "fcltsId" />
<column name = "systemCdNm" /> //순서대로 써져있어야 함.
<column name = "fcltsDivNm" /> //Entity의 타입이 아닌, DB의 타입과 맞아야 함
</constructor-result>
</sql-result-set-mapping>
4. Column의 순서가 DTO의 순서와 맞는지 확인
DTO의 constructor로 column이 들어가므로 순서대로 써져있어야 한다...
5. DB에서 내려주는 타입과 DTO의 타입이 맞는지 확인
Entity의 타입과 맞는게 아니라 DB에서 내려주는 타입과 맞아야 한다.
728x90
반응형