首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate查询,用于在字符串字段中搜索特定子字符串

Hibernate查询,用于在字符串字段中搜索特定子字符串
EN

Stack Overflow用户
提问于 2016-06-17 11:46:48
回答 3查看 1.6K关注 0票数 1

我的一个表中有一个字段,它有一个存储urls的字段,该表的POJO如下所示:

代码语言:javascript
复制
public class ContentDefinition 
    {
        private String contentName;
        private int contentId;
        private String contentType;
        private String contentUrl;

    }

我正在尝试编写一个查询,以检查contentUrl字段是否包含以字符串address-book结尾的url。

我使用以下查询:

代码语言:javascript
复制
String hql = " from ContentDefinition WHERE contentUrl LIKE '%'address-book'%'";
Query query = getCurrentSession().createQuery(hql);
List<ContentDefinition> resultsList = query.list();

但我得到了一个例外:

代码语言:javascript
复制
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: address near line 1, column 130

有什么解决办法吗?我的网址可以是任何东西,但总是以/address-book结尾。

EN

回答 3

Stack Overflow用户

发布于 2016-06-17 12:02:45

代码语言:javascript
复制
String hql = " from ContentDefinition WHERE contentUrl LIKE :addressBook "; 
Query query = getCurrentSession().createQuery(hql);
query.setParameter("addressBook","address-book");
List<ContentDefinition> resultsList = query.list();
票数 1
EN

Stack Overflow用户

发布于 2016-06-17 12:54:35

String hql =“from ContentDefinition WHERE contentUrl LIKE '%address-book%‘";

更改上面的行。其余的代码看起来不错。我测试过类似的代码。

票数 1
EN

Stack Overflow用户

发布于 2016-06-17 17:13:48

请阅读SQL LIKE Operator一章。

医生说:

在WHERE子句中使用LIKE运算符在列中搜索指定的模式。

where animalType like '%cats%'

这意味着,您应该将查询从以下位置更改:

代码语言:javascript
复制
String hql = " from ContentDefinition WHERE contentUrl LIKE '%'address-book'%'";

代码语言:javascript
复制
String hql = " from ContentDefinition WHERE contentUrl LIKE '%address-book%'";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37872806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档