JPA2:不区分大小写,就像在任何地方匹配

JPA2:不区分大小写,就像在任何地方匹配,第1张

JPA2:不区分大小写,就像在任何地方匹配

乍一看似乎有点尴尬,但是它是类型安全的。不是从字符串构建查询,因此您会在运行时而不是编译时注意到错误。通过使用缩进或单独执行每个步骤,可以使查询更具可读性,而不必在一行中编写整个WHERe子句。

为了使查询不区分大小写,请将关键字和被比较的字段都转换为小写:

query.where(    builder.or(        builder.like( builder.lower(     root.get(         type.getDeclaredSingularAttribute("username", String.class)     ) ), "%" + keyword.toLowerCase() + "%"        ),         builder.like( builder.lower(     root.get(         type.getDeclaredSingularAttribute("firstname", String.class)     ) ), "%" + keyword.toLowerCase() + "%"        ),         builder.like( builder.lower(     root.get(         type.getDeclaredSingularAttribute("lastname", String.class)     ) ), "%" + keyword.toLowerCase() + "%"        )    ));


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5586787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存