本文介绍了Hibernate Regex的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试构建一个可以通过HQL正则表达式关键字进行搜索的API。

编辑:
在HQL中执行正则表达式搜索的最佳方式是使用标准,Restrictions.like()或Restrictions.ilike()。

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

for(参数p:list){
String value =(String)p.value;
if(value.contains(*)){
value = value.replace(*,%);
} else {
value + =%;
}
标准c1 = Restrictions.ilike(p.property,value);
cri.add(c1);

}

返回cri.list();
}

希望这可以帮助某人

解决方案

HQL没有正则表达式。如果你想为正则表达式使用数据库提供者特定的结构,应该修改Dialect。 问题包含讨论如何做到这一点Oracle数据库。


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

解决方案

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.

这篇关于Hibernate Regex的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 05:28