You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL LIKE查询在数据库运行正常但Spring JPA原生查询不生效如何解决

问题根因

你当前的写法里,:modelId被包裹在单引号内部,Spring Data JPA的参数解析器会把单引号内的内容直接识别为普通字符串,不会将其当做待绑定的参数处理,最终实际执行的SQL会原封不动带上:modelId文本,自然匹配不到任何数据。

解决方案

使用MySQL的CONCAT函数拼接LIKE匹配的字符串,将参数脱离单引号作用范围即可正常绑定:

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

原理解释

CONCAT函数会将传入的多个字符串按顺序拼接,当modelId传入99时,最终拼接得到的匹配串就是33__9900000000,完全符合你原本的匹配规则,也不会破坏_通配符的作用。

内容的提问来源于stack exchange,提问作者Oirampok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:24:03