如何搜索部分字段?

时间:2014-03-05 06:06:58

标签: java hibernate

我有一个搜索框,需要搜索不同的字段,如名字,姓氏和电子邮件。根据我当前的代码,如果用户输入字符'm',所有用户将在显示所有电子邮件时显示,并且所有用户都包含在.com中的'm'。

我想知道如何更改它以便能够搜索fname,lname和email,但它会排除电子邮件中@之后的所有字符。例如yahoo.com,hotmail.com,yahoo.com.us等。

  criteria.add(Restrictions.disjunction()
                        .add(Restrictions.ilike("client.email", "%" + value + "%"))
                        .add(Restrictions.ilike("user.fname", "%" + query + "%"))
                        .add(Restrictions.ilike("user.lname", "%" + query + "%")));

1 个答案:

答案 0 :(得分:1)

您可以尝试:

criteria.add(Restrictions.disjunction()
                    .add(Restrictions.ilike("client.email", "%" + value + "%@%"))
                    .add(Restrictions.ilike("user.fname", "%" + query + "%"))
                    .add(Restrictions.ilike("user.lname", "%" + query + "%")));