java - 在 where 子句中带有 like 的命名查询

标签 java sql jpa named-query

是否可以在命名查询的 where 子句中使用 like?我正在尝试执行以下操作,但遇到异常

@NamedQuery(name = "Place.getPlaceForCityAndCountryName",
query = "SELECT p FROM Place p WHERE " +
        "lower(p.city) like :city and " +
        "lower(p.countryName) like :countryName");

我尝试像在普通 SQL 中那样添加 %,但编译时会出现异常。

任何指针都非常感谢!

谢谢

最佳答案

您不能在 NamedQuery 中包含 %,但您可以在分配参数的值中包含它。

如:

String city = "needle";
query.setParamter("city", "%" + city + "%");

关于java - 在 where 子句中带有 like 的命名查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10912320/

相关文章:

java - 如何将枚举类型存储为小写字符串?

java - 在为用户打印代码之前,java是否会创建所有用于递归的堆栈帧?

mysql - SQL/MYSQL : returning first marching row vs min calculation

mysql - SQL查询性能优化——取对应A的max(B)

java - 有没有更简单的方法来使用 BETWEEN 进行 JPQL 查询以在属性中包含 NULL 值

java - 如何将一列大对象转换为长文本?

Java:在 Windows 上使用相对目录路径

java - 如何在unix中成功杀死java进程并重新启动它?

java - Navigationdrawer fragment 中的后退按钮

php - 如何使用mysql中的count函数选项将行值一一分开