如何从 Spring @Query 注解中调用 SQL 函数

How to call SQL Function from Spring @Query Annotation

这里的语法有什么问题:

@Modifying
@Query(nativeQuery = true, value = "delete from simple_token where simple_token.expiry < NOW()")
int deleteExpiredTokens();

我得到异常

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's where s.expiry < now()' at line 1

但是 'as is' 执行的查询将在 MYSQL 客户端中正常执行。

我做错了什么?

您声明的查询和语法错误不同。 where s.expiry < now() 在异常中,但 simple_token.expiry < NOW()@Query 中。看起来你 运行 查询错误。可能别名不正确

抱歉,我是个白痴。 sql 'as is' 在 mysql 客户端中不起作用。我将代码更改为:

@Modifying
@Query(nativeQuery = true, value = "delete from simple_token where expiry < NOW()")
int deleteExpiredTokens();

现在可以正常使用了