Hibernate Regex

允我心安 提交于 2019-12-28 06:53:10

问题


I am trying to build an API which can search by HQL regex keywords,

EDITED: The best way to perform regex search in HQL is to use criteria, Restrictions.like() or Restrictions.ilike().

public static List<Object> createQueryAnd(Criteria cri,
        ArrayList<Parameters> list) {

    for (Parameters p : list) {
        String value = (String) p.value;
        if (value.contains("*")) {
            value = value.replace("*", "%");
        } else {
            value += "%";
        }
        Criterion c1 = Restrictions.ilike(p.property, value);
        cri.add(c1);

    }

    return cri.list();
}

Hope this helps someone


回答1:


HQL does not have regular expressions. If you want to use database provider specific constructs for regular expression, Dialect should be modified. This question contains discussion about how to do that with Oracle database.



来源:https://stackoverflow.com/questions/14245453/hibernate-regex

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!