当前位置: 首页 > 面试题库 >

使用Like和%%运算符的Hibernate命名查询?

符风畔
2023-03-14
问题内容

在我的Hibernate JPA示例代码中。

public List<AttendeesVO> addAttendees(String searchKeyword) {
    TypedQuery<AttendeesVO> query = entityManager.createQuery(" select at from AttendeesVO at where at.user.firstName LIKE :searchKeyword",AttendeesVO.class);
    query.setParameter("searchKeyword", searchKeyword+"%");
    return query.getResultList();
}

给整个字符串时它工作正常 firstName=Narasimham

但是,当我们赋予Narasimhamie an

其实我的想法是我给Like运算符,% %使它可以工作给定字符串的任何字符。


问题答案:

您正在使用 query.setParameter("searchKeyword", searchKeyword+"%");

代替 query.setParameter("searchKeyword", "%"+searchKeyword+"%");

第一个将返回Narasimham N Na Nar Nara等的行。



 类似资料:
  • 问题内容: 设置以下映射 通知ID是一个整数。现在我需要使用like运算符进行此HQL查询 ATT:它 就像 运算符NOT = (等于运算符) 然后我用 但是不起作用,因为Hibernate抱怨在调用User.id的getter时发生了IllegalArgumentException 即使我使用 这没用 我应该使用什么来传递查询? 问题答案: 根据Hibernate参考: str()用于将数字或时

  • 问题内容: 通配符*只能在单词的末尾使用,例如。 我想用like查询,该怎么做? 问题答案: Lucene提供了ReverseStringFilter,它允许执行通配符搜索,例如* user。它通过以相反顺序索引所有术语来工作。 但是我认为没有办法做类似’LIKE%user%’的事情。

  • 问题内容: 我想用Hibernate实现一些通用过滤器。它应该像来自SQL的运算符一样工作: 我在哪里 key 是列名, value 是它的值。 我尝试过这样的事情: 但是,当字段类型不是 String时 ,它将导致 : 有办法解决吗? 问题答案: 在这种情况下,我建议使用而不是。 我不记得Criteria是否像Query对象一样将无法理解的事情传递给数据库。基本上,这意味着如果您使用的功能是Hi

  • 本文向大家介绍使用MySQL LIKE运算符显示特定的表名,包括了使用MySQL LIKE运算符显示特定的表名的使用技巧和注意事项,需要的朋友参考一下 要使用LIKE运算符显示特定的表名称,语法如下- 让我们实现以上语法,以使用LIKE运算符显示特定的表名: 这将产生以下输出

  • 问题内容: 在命名查询的where子句中可能有一个like?我正在尝试执行以下操作,但出现异常 我尝试像在普通SQL中那样添加%,但是得到了异常编译。 任何指针,不胜感激! 谢谢 问题答案: 您不能在中添加%,但可以在为其分配参数的值中包含它。 如:

  • 在 Transact-SQL 中,LIKE 运算符用于搜索带有 WHERE 子句的列中指定的模式。Transact-SQL 中的 LIKE 子句用于比较相同的值以使用通配符运算符。 两个通配符与 LIKE 运算符结合使用: - 百分号代表零、一个或一些字符。 - 下划线符号代表单个字符。 注意:MS Access 使用星号 () 代替百分号 () 和问号 (?) 而不是下划线 ()。 百分号代表