首页 > 解决方案 > SQL 查询在 Spring Boot 应用程序中返回 void 但在 H2 中没有

问题描述

晚上好,

我确定我错过了有关如何在 Spring Boot 应用程序中编写查询的内容,希望得到纠正。

h2-console 中的 SQL 查询:

SELECT customer_id FROM customers WHERE first_name = 'morton';

返回“1”

在 Spring 应用程序中:

@Query(nativeQuery = true, value = "SELECT 'customer_id' FROM customers WHERE 'first_name' = ?1")
public Long findIdByName(String name);

返回空

错误文字:

org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "SELECT 'customer_id' FROM CUSTOMERS WHERE 'first_name' = %[*]?"; expected "ALL, ANY, SOME"; SQL statement:
SELECT 'customer_id' FROM customers WHERE 'first_name' = %? [42001-200]

第二个查询有什么问题?

如果您需要完整的堆栈跟踪,请告诉我。

谢谢

标签: sqlspring-boot

解决方案


从查询中删除单个引号。

改变

SELECT 'customer_id' FROM customers WHERE 'first_name' = ?1

SELECT customer_id FROM customers WHERE first_name = ?1

推荐阅读