돌맹이
[JPA] Reason: Validation failed for query for method public abstract java.util.List 오류 해결 본문
programming/JPA
[JPA] Reason: Validation failed for query for method public abstract java.util.List 오류 해결
오택 2023. 6. 12. 13:52# 코드
public interface MemberRepository extends CrudRepository<Member, String>{
@Query("SELECT m.uid, count(p) FROM Member m LEFT OUTER JOIN Profile p "
+ "On m.uid = p.member WHERE m.uid = ?1 GROUP BY m")
public List<Object[]> getMemberWithProfileCount(String uid);
}
# 오류 발생
MemberRepository를 위와 같이 작성했을 때,
다음과 같은 오류가 발생했다.
Error creating bean with name 'memberRepository' defined in org.zerock.persistence.MemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract java.util.List org.zerock.persistence.MemberRepository.getMemberWithProfileCount(java.lang.String); Reason: Validation failed for query for method public abstract java.util.List org.zerock.persistence.MemberRepository.getMemberWithProfileCount(java.lang.String)
# 해결 방법
JPQL 방식을 버리고 nativeQuery 방식으로 바꿔서 해결
public interface MemberRepository extends CrudRepository<Member, String>{
@Query(value = "SELECT m.uid, count(fname) FROM tbl_members m LEFT OUTER JOIN tbl_profile p "
+ "On m.uid = p.member_uid WHERE m.uid = ?1 GROUP BY m.uid", nativeQuery = true)
public List<Object[]> getMemberWithProfileCount(String uid);
}
'programming > JPA' 카테고리의 다른 글
[JPA] JPQL 사용하여 TABLE JOIN 하기 (1) | 2023.06.13 |
---|---|
[JPA] findOne 대신 사용할 수 있는 메소드 3가지 (0) | 2023.06.07 |
[JPA] StrategySelectionException Error (0) | 2023.06.07 |