用于搜索部分字符串的 Hibernate 查询
Hibernate query for searching part of string
我正在尝试编写一个休眠查询来搜索 table 房间是否包含 roomname,其中包含 string.The 字符串值的一部分在变量中。我写了一个查询以从 table.
中获取确切的房间名称
findRoom(String name) {
Query query = em.createQuery("SELECT a FROM Room a WHERE a.roomname=?1");
query.setParameter(1, name);
List rooms = query.getResultList();
return rooms;
}
在 sql 中查询是这样的:
mysql_query("
SELECT *
FROM `table`
WHERE `column` LIKE '%"name"%' or '%"name"' or '"name"%'
");
我想知道用于搜索与我的查询匹配的 table 的 hql 查询。我不能直接使用字符串,所以搜索查询必须是基于可验证的,并且我需要查询中的所有三种类型,如果它以名称开头,或者包含名称或以名称结尾。
使用like
代替=
:
Query query = em.createQuery("SELECT a FROM Room a WHERE a.roomname like ?1");
query.setParameter(1, "%"+name+"%");
我会这样做:
findRoom(String name) {
Query query = em.createQuery("SELECT a FROM Room a"
+ "WHERE a.roomname LIKE CONCAT('%',?1,'%')");
query.setParameter(1, name);
List rooms = query.getResultList();
return rooms;
}
我正在尝试编写一个休眠查询来搜索 table 房间是否包含 roomname,其中包含 string.The 字符串值的一部分在变量中。我写了一个查询以从 table.
中获取确切的房间名称findRoom(String name) {
Query query = em.createQuery("SELECT a FROM Room a WHERE a.roomname=?1");
query.setParameter(1, name);
List rooms = query.getResultList();
return rooms;
}
在 sql 中查询是这样的:
mysql_query("
SELECT *
FROM `table`
WHERE `column` LIKE '%"name"%' or '%"name"' or '"name"%'
");
我想知道用于搜索与我的查询匹配的 table 的 hql 查询。我不能直接使用字符串,所以搜索查询必须是基于可验证的,并且我需要查询中的所有三种类型,如果它以名称开头,或者包含名称或以名称结尾。
使用like
代替=
:
Query query = em.createQuery("SELECT a FROM Room a WHERE a.roomname like ?1");
query.setParameter(1, "%"+name+"%");
我会这样做:
findRoom(String name) {
Query query = em.createQuery("SELECT a FROM Room a"
+ "WHERE a.roomname LIKE CONCAT('%',?1,'%')");
query.setParameter(1, name);
List rooms = query.getResultList();
return rooms;
}