用于搜索部分字符串的 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;
         }