MYSQL LIKE 查询在 MYSQL 数据库中工作,但在 Spring JPA 中工作

MYSQL LIKE query working in MYSQL database but in Spring JPA

我有一个查询要使用 MYSQL 中的 like 运算符搜索特定行,它 运行 完全符合 mysql workbench,但我似乎不能使用 nativequery 在 Spring 的 JPA 上实现 运行。 MYSQL 中的查询是:

SELECT * FROM product where PRODUCT_ID LIKE '33__:modelId00000000';

当我在 workbench 中测试它时它有效:

其中我使用通配符查找在正确字符位置包含特定字符串的所有产品。 productId 以 33 开头,然后是 0-100,然后是型号 ID,因此 %:modelId% 在这里不起作用。这是我现在的 JPA 查询,但它 returns 为空。

@Query(value = "SELECT * FROM product where PRODUCT_ID LIKE '33__:modelId00000000'", nativeQuery = true)
List<Product> getProductByModelId(String modelId);

允许返回什么,例如在这种情况下 modelId 为“99”:

或许,你可以这样尝试:

SELECT * FROM product where PRODUCT_ID LIKE CONCAT('33%',:modelId,'00000000')

但是由于我不熟悉 JPA,所以我不确定这个查询是否可以避免 MySQL 注入。

Demo fiddle