2017-09-25 41 views
1

数据记录我试图nativeQuery方法获取一些数据qithout使用Spring BootSpring Data JPA方法在我的库文件中使用JPQL,我加入了我下面的示例代码,无法访问使用nativeQuery方法springboot和数据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(); 

还要确保在数据库中的表实际上是cassed users和列是username。如果您正在使用实体名称和字段名称,那么这是另一件需要改变的事情。