如果数据库中的任何字段为空(无论公司名称还是位置),我都不会得到记录。 keyword是我从表单输入的内容。

这是我的查询:

Query qry=session.createQuery("select distinct company_name from Company_Info where company_name like '%"+keyword+"%' or  locations.city like '%"+keyword+"%'");


有人知道如何进行这项工作吗?

最佳答案

由于您必须在HQL中使用null,因此(如果存在具有潜在电位的参数。)请使用以下命令:

String keywordTerm = keyword==null ? "is null" : "= :keyword";

Query qry=session.createQuery("select distinct company_name from Company_Info where company_name like '%"+keyword+"%' or  locations.city like '%"+keyword+"%'");

if(keyword!=null){
    qry.setParameter("keyword", keyword, Hibernate.STRING)
}

关于java - 如何在hql中对具有相同关键字的两个字段执行搜索操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41164823/

10-12 06:07