我的一个表中有一个字段,其中包含要存储urls
的字段,该表的POJO
如下所示:
public class ContentDefinition
{
private String contentName;
private int contentId;
private String contentType;
private String contentUrl;
}
我正在尝试编写一个查询来检查contentUrl
字段是否包含以字符串address-book
结尾的url。
我使用以下查询:
String hql = " from ContentDefinition WHERE contentUrl LIKE '%'address-book'%'";
Query query = getCurrentSession().createQuery(hql);
List<ContentDefinition> resultsList = query.list();
但我得到一个例外:
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: address near line 1, column 130
是否有任何解决方案,我的网址可以是任何内容,但始终以/address-book
答案 0 :(得分:1)
String hql = " from ContentDefinition WHERE contentUrl LIKE :addressBook ";
Query query = getCurrentSession().createQuery(hql);
query.setParameter("addressBook","address-book");
List<ContentDefinition> resultsList = query.list();
答案 1 :(得分:1)
String hql =“from ContentDefinition WHERE contentUrl LIKE'%address-book%'”;
更改以上行。其余代码看起来不错。我测试过类似的代码。
答案 2 :(得分:0)
医生说:
在WHERE子句中使用LIKE运算符来搜索列中的指定模式。
where animalType like '%cats%'
这意味着,您应该从以下位置更改查询:
String hql = " from ContentDefinition WHERE contentUrl LIKE '%'address-book'%'";
到
String hql = " from ContentDefinition WHERE contentUrl LIKE '%address-book%'";