2017-09-25 9 views
1

springboot 및 데이터에 nativeQuery 방법을 사용하여 데이터 레코드를 액세스 할 수 없습니다 내가 Spring Boot, Spring Data JPA 방법을 사용하여 내 저장소 파일에 JPQL을 사용 qithout 일부 데이터를 가져 오는에 대한 nativeQuery 방법을 시도, 내가 아래에있는 내 샘플 코드를 추가하고는 JPA

public interface UsersRepository extends CrudRepository<Users, Long> { 
    @Query(value = "select u.username from users u",nativeQuery=true) 
    List<Users> findByUsername(); 
}, 

그리고 메서드를 호출하여, UsersRepository userRepo; return (List) userRepo.findByUsername();

그런 다음 오류가 좋아지고 -

는 "예기치 않은 오류 (유형 = 내부 서버 오류, 상태 = 500)이 있었다 쿼리를 실행할 수 없습니다;. SQL은 [ 사용자로부터 u.username를 선택 u]; 중첩 예외는 입니다. org.hibernate.exception.SQLGrammarException : 쿼리를 실행할 수 없습니다 ".

누구든지이 문제를 해결할 수 있습니까?

답변

1

항상 nativeQuery을 사용하고 있습니다. 항상 투영 결과가 나타나며이를 ListUsers 엔티티로 매핑하려고합니다.

이 작동하지 않을 경우 귀하는 List<String>을 기대합니다. 또는 어떤 시점에서 결과에 더 많은 열을 추가하기로 결정한 경우 나열하십시오.

@Query(value = "select u.username from users u",nativeQuery=true) 
    List<String> findByUsername(); 

또한 데이터베이스의 테이블이 실제로 users cassed하고 열이 username 있는지 확인하십시오. 엔티티 이름과 필드 이름을 사용하는 경우 변경해야 할 또 다른 사항입니다.