java - 使用 Like 和 % % 运算符的 hibernate 命名查询?

标签 java hibernate jpa hql

在我的 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

但是当我们给出 Narasimham 的任何字符时它不起作用,即 an

实际上我的想法是我给 Like 运算符与 % % 所以它可以工作给定字符串的任何字符..

最佳答案

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

而不是 query.setParameter("searchKeyword", "%"+searchKeyword+"%");

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

关于java - 使用 Like 和 % % 运算符的 hibernate 命名查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14119241/

相关文章:

java - 为什么 List 接口(interface)扩展 Collection 接口(interface)?

java - eclipse插件开发--选择向导时在Project中添加预定义的子文件夹

java - Hibernate映射异常: Foreign key must have same number of columns as the referenced primary key

java - 一对一弱实体映射 JPA

java - 用 Java 修改并比较 2 个图像

java - 具有高效 add 和索引 get 方法的排序 Java 数据结构

java - 如何将返回的对象转换为所需的bean/pojo

java - 使用 Hibernate 和 Postgres 读取/更新并发实体

java - Spring + Jboss7 @Transactional 不工作

java - Wicket 口和数据库访问的最佳实践