【发布时间】:2012-08-01 08:25:19
【问题描述】:
我正在使用oracle 10g 和hibernate 3.3.2。之前在sql中使用过正则表达式,现在第一次在HQL中使用。
Query query = getSession().createQuery("From Company company
where company.id!=:companyId and
regexp_like(upper(rtrim(ltrim(company.num))), '^0*514619915$' )");
这是我的 hql,当我在没有 regex_like 函数的情况下运行它时,它会按预期运行。但我无法用regex_like 表达式执行它。
它说..
嵌套异常是 org.hibernate.hql.ast.QuerySyntaxException: 意外的 AST 节点:(靠近第 1 行,第 66 列.....
请帮忙,我如何在休眠原生查询中使用regex_like?或其他替代方法。
【问题讨论】:
-
为什么要强制它返回布尔值以外的任何值? Oracle SQL 只是愚蠢地设计为没有布尔数据类型,但您不需要这里的 0 和 1 或“Y”和“N”结果。
标签: java sql oracle hibernate hql