使用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