设置以下映射
@Entity
public class User {
private Integer id;
@Id;
private Integer getId() {
return this.id;
}
}
通知ID是一个整数。现在我需要使用like运算符进行此HQL查询
Query query = sessionFactory.getCurrentSession().createQuery("from User u where u.id like :userId");
ATT:它 就像 运算符NOT = (等于运算符)
然后我用
List<User> userList = query.setParameter("userId", userId + "%").list();
但是不起作用,因为Hibernate抱怨在调用User.id的getter时发生了IllegalArgumentException
即使我使用
query.setString("userId", userId + "%");
这没用
我应该使用什么来传递查询?
根据Hibernate参考:
str()用于将数字或时间值转换为可读的字符串
所以当我使用
from User u where str(u.id) like :userId
工作正常
问题内容: 通配符*只能在单词的末尾使用,例如。 我想用like查询,该怎么做? 问题答案: Lucene提供了ReverseStringFilter,它允许执行通配符搜索,例如* user。它通过以相反顺序索引所有术语来工作。 但是我认为没有办法做类似’LIKE%user%’的事情。
问题内容: 在我的Hibernate JPA示例代码中。 给整个字符串时它工作正常 但是,当我们赋予ie 或 其实我的想法是我给运算符,使它可以工作给定字符串的任何字符。 问题答案: 您正在使用 代替 第一个将返回 等的行。
在 Transact-SQL 中,LIKE 运算符用于搜索带有 WHERE 子句的列中指定的模式。Transact-SQL 中的 LIKE 子句用于比较相同的值以使用通配符运算符。 两个通配符与 LIKE 运算符结合使用: - 百分号代表零、一个或一些字符。 - 下划线符号代表单个字符。 注意:MS Access 使用星号 () 代替百分号 () 和问号 (?) 而不是下划线 ()。 百分号代表
本文向大家介绍Mysql| 使用通配符进行模糊查询详解(like,%,_),包括了Mysql| 使用通配符进行模糊查询详解(like,%,_)的使用技巧和注意事项,需要的朋友参考一下 通配符的分类: %百分号通配符: 表示任何字符出现任意次数 (可以是0次). _下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符. like操作符: LIKE作用是指示mysql后面的搜索模式是利用通
问题内容: 我正在使用psql在Postgres中查询数据库。我使用以下查询来搜索一个名为 tag 的字段,该字段的数据类型为文本数组: 现在,我需要创建一个查询,以在 标签 字段中搜索以字母“ A”开头的任何单词。我尝试了以下方法: 这给了我一个语法错误。关于如何将LIKE与文本数组结合使用的任何建议? 问题答案: 使用函数将数组转换为行集: 本应算唯一条目表,只需更换你的主键的名称。 话虽这么
我能够存储、检索和查询具有枚举类型的实体(使用JPA/Hibernate)。枚举字段使用@Enumerated(EnumType.String)进行注释。 是否可以执行类似的操作? 谢谢你帮忙。 ---更新: 当我试图用这个来查询时: