我写了一个查询
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应用程序中运行?
答案 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);