1

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

已编辑:在 HQL 中执行正则表达式搜索的最佳方法是使用条件、Restrictions.like() 或 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();
}

希望这可以帮助某人

4

1 回答 1

4

HQL 没有正则表达式。如果要对正则表达式使用数据库提供程序特定的构造,则应修改方言。问题包含有关如何使用 Oracle 数据库执行此操作的讨论。

于 2013-01-09T20:07:14.437 回答