java - 无法在Spring Boot和Data JPA中使用 native 查询方法访问数据记录

标签 java spring hibernate jpa spring-data-jpa

我尝试使用 nativeQuery 方法在我的存储库文件中使用 Spring BootSpring Data JPA 方法来获取一些数据,而不使用 JPQL,我是添加下面的示例代码:

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

并通过以下方式调用该方法,

UsersRepository userRepo;
return (List<Users>) userRepo.findByUsername();

然后我收到的错误:

"There was an unexpected error (type=Internal Server Error, status=500). could not execute query; SQL [select u.username from users u]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query".

谁能帮忙解决这个问题吗?

最佳答案

您正在使用nativeQuery这总是会产生投影,并且您尝试将其映射到 ListUsers实体。

这不会起作用,你期望的是 List<String>在你的情况下。或者如果您决定在某个时候在结果中添加更多列,则列出。

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

还要确保数据库中的表确实是cased users该列是 username 。如果您使用实体名称和字段名称,那么这是另一件事需要更改。

关于java - 无法在Spring Boot和Data JPA中使用 native 查询方法访问数据记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46408601/

相关文章:

java - 如何从 spring.xml 中的外部 jar 文件引用类

java - 为什么我的 up 函数将输入更改为 Java 中 block 的输入

java - 找到 3 个整数的最高乘积的最简单实现

java - Swing:从 TableModel 捕获异常

java - 如何模拟jsp :param in SpringMVC

java - Spring Batch - 远程分区

java - 使用按功能包约定将我的框架类放在哪里?

java - 组织.hibernate.SessionException : Session is closed

java - 设置基于 Spring security 的 OAuth2 服务器

java - 使用 c3p0 和 Hibernate 时出现 Broken pipeline 异常是什么意思