奇怪的Hibernate——当?遇上%

今天写了一个模糊查询的SQL语句,发现了点有趣的东东

情景: 平时写模糊查询的时候是”select * from user where username like %?%” 然后就是setParameter 结果hibernate就抛了个错误unexpected % 什么!难道不能加通配符吗 然后我就改成”select * from user where username like ‘%?%’” 结果又抛了个错误org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 1

原因: 第一个异常的原因是:%需要在单引号里面 第二个异常的原因是:’%?%’里面?是被当成是字符串,不会被识别为参数

解决方案: SQL写成“select * from user where username like ?” 然后setParameter(“%”+param+”%”);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏栗霖积跬步之旅

第八章:用通配符进行过滤

表名:products  字段:product_id、product_name、product_price、vend_id(供应商) 1.LIKE操作符: 通配...

20350
来自专栏Java后端生活

mysql 时间戳函数FROM_UNIXTIME和UNIX_TIMESTAMP函数的使用说明

29760
来自专栏Kevin-ZhangCG

Oracle学习笔记一

Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实 Oracle数据库的概念和其它数据库不一样,这里...

12020
来自专栏微信终端开发团队的专栏

微信移动端数据库组件 WCDB 系列:WINQ原理篇(三)

高效、完整、易用是WCDB的基本原则。前几篇文章分享了WCDB的基本用法和修复工具,接下来将更深入地聊聊WCDB在易用性上的思考和实践。

97100
来自专栏ml

mysql知识初篇(一)

mysql介绍 (1) mysql数据库是瑞典AB开发。 (2) mysql--> sun --> oracle。 (3) mysql数据库的...

36270
来自专栏杨建荣的学习笔记

通过oracle类比MySQL中的字节字符问题(r4笔记第44天)

在几个月前写过一篇博文 MySQL数据类型 http://blog.itpub.net/23718752/viewspace-1371434/ 当时写完以后有...

33970
来自专栏不想当开发的产品不是好测试

mysql @value := 用法

背景 有这么一张表,记录名字和分数,现在需要按照成绩排名,存在并列名次的情况 ? 解决方法 思路:按照score从大到小排序,第一行数据就是第一名,第二行就是第...

29380
来自专栏程序猿

SQL优化法则小记

SQL优化技巧 1.选择最有效率的表名顺序(只在基于规则的优化器中有效): oracle的解析器按照从右到左的顺序处理 from 子句中的表名,...

38590
来自专栏lonelydawn的前端猿区

oracle细节

01、SQL查询语句不区分大小写,但是数据区分 02、where从句中Name=null是查询不到结果的,必须用 is null 03、union去重,unio...

24580
来自专栏AhDung

【SQL】分享表值函数FMakeRows,用于生成行

评论中又有一位【笑东风】兄给出改善建议,在此先感谢他。原理是借助行数较多的一个系统视图sys.all_columns与自身做cross join,以得到大量现成...

9630

扫码关注云+社区

领取腾讯云代金券