使用JDO与Datanucleus,我想从我的数据库(使用jdoql)过滤一些数据。我想使用正则表达式进行一些复杂的搜索,我发现JDO提供了接受正则表达式的String方法“matches”,根据DATANUCLEUS文档,此方法可以接收任何类型的ExpReg:使用字符串JDOQL DATANUCLEUS过滤匹配
matches(String pattern):返回字符串是否与传入的表达式匹配。 pattern参数遵循java.lang.String.matches方法的规则。
我能够基于一些正则表达式做过滤(如“*”,“‘’*”),但不与他人(如[ABCD])
有人可以证实,没有支持所有正则表达式语法集合?
Query q = pm.newQuery(cl, "this.name.matches(filterName)");
q.declareParameters("String filterName");
List results = (List)q.execute("Bo.*");
return pm.detachCopyAll(results);
- >返回书,第二册
But with : q.execute("B[aoe]ok") return nothing !
感谢
我敢肯定,如果你看了日志(如SQL调用),你很可能更好地了解 – DataNucleus
谢谢,但我在哪里可以看到从javax.jdo.Query调用的sql? 日志文件中没有sql跟踪。 – Jugu
当开发人员将日志记录配置到正确级别(DEBUG)时,根据公共可见的DataNucleus文档,日志文件中有SQL。 – DataNucleus