我的 Spring JPA 查询不适用于 H2

My Spring JPA queries do not work with H2

下面的这个查询不起作用,它给我生成了一个异常

@Query(value = "SELECT * FROM account WHERE account_no = ?1",
nativeQuery = true)
Account findByAccountNo(String accountNo);
 "message": "could not prepare statement; SQL [SELECT * FROM account WHERE account_no = ?]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement",

当我使用 MySQL 数据库时,查询工作正常。但是现在用的是H2数据库,突然就不行了。为什么?我该如何解决这个问题?

我在这里猜测,但参数语法“?1”可能对 H2 无效。

此处无需使用本机查询,如果改用 Jpa 语法,应该可以。

此外,您根本不需要在此处指定查询 - Spring Jpa 应该会为您生成查询。

用JPA会更好

如果您仍然想使用 nativeQuery,请像这样使用:

@Query(value = "SELECT * FROM account WHERE account_no = :account_no",
nativeQuery = true)
Account findByAccountNo(@Param("account_no") String accountNo);