JPA Query获取错误InvalidDataAccessResourceUsageException

时间:2018-05-08 08:51:36

标签: spring-data-jpa

我写了一个查询

public interface TeabagRepository extends CrudRepository<Teabag, Long> {

    @Query(value = "SELECT t.post, t.status, t.expires FROM teabags t WHERE t.status = 'hot' AND t.user_id = ?1", nativeQuery = true)
    Teabag findTea(Long id);
}

我在spring.jpa.show-sql=true

中设置application.properties

所以查询显示在控制台中,我在数据库中运行了这个查询,它可以工作:

SELECT
    t.post,
    t.status,
    t.expires 
FROM
    teabags t 
WHERE
    t.status = 'hot' 
    AND t.user_id = ?

错误:

  

2018-05-08 19:22:27.675 ERROR 1259 --- [nio-8080-exec-4]   o.a.c.c.C。[。[。[/]。[dispatcherServlet]:Servlet.service()for   在path []的上下文中的servlet [dispatcherServlet]引发了异常   [请求处理失败;嵌套异常是   org.springframework.dao.InvalidDataAccessResourceUsageException:可以   不执行查询; SQL [SELECT t.post,t.status,t.expires   来自茶包t.status =&#39; hot&#39; AND t.user_id =?];嵌套   异常是org.hibernate.exception.SQLGrammarException:不能   执行查询] ****与根本原因

     

org.postgresql.util.PSQLException:未找到列名称ID   这个ResultSet。****

     

org.springframework.dao.InvalidDataAccessResourceUsageException:可以   不执行查询; SQL [SELECT t.post,t.status,t.expires FROM   茶壶t.status =&#39; hot&#39; AND t.user_id =?];

更新:更多错误文字

  

嵌套异常是org.hibernate.exception.SQLGrammarException:无法执行查询

根错误

  

有根本原因

     
    

org.postgresql.util.PSQLException:未找到列名称ID     这个ResultSet。

  

为什么这个查询不能在spring boot应用程序中运行?

1 个答案:

答案 0 :(得分:1)

结果是期待茶袋的每一列,所以我必须选择t。*

@Query(value = "SELECT t.* FROM teabags t WHERE t.status = 'hot' AND t.user_id = ?1", nativeQuery = true)
    Teabag findTea(Long id);