Emergency, who can help me? Wildcard must appear at the end of the expression string (only prefix matches are supported)

74 views
Skip to first unread message

Shawn

unread,
Sep 9, 2009, 1:59:12 AM9/9/09
to Google App Engine
I used the jdoql url.matches like this:

public static List<Pojo_website> getEntries(String url) {
PersistenceManager pm = PMF.get().getPersistenceManager();
Query query = pm.newQuery(Pojo_website.class);
StringBuilder filter = new StringBuilder();
if(url != null && !url.equals("")){
if (filter.length() != 0) {
filter.append(" && ");
}
filter.append("url.matches(\".*urlselected.*\")");
//filter.append("url.startsWith(urlselected) ");
}
if (filter.length() > 0) {
query.setFilter(filter.toString());
}
query.setOrdering("url desc");
query.declareParameters("String urlselected");
System.out.println("The JDOQL: " + query.toString());
List<Pojo_website> entries = (List<Pojo_website>) query.execute
(url);
return entries;
}



But the error message for me:



2009-9-9 5:58:00 com.google.apphosting.utils.jetty.JettyLogger warn
警告: Nested in org.apache.jasper.JasperException:
org.datanucleus.store.appengine.query.DatastoreQuery
$UnsupportedDatastoreFeatureException: Problem with query <SELECT FROM
com.backlinks.pojo.Pojo_website WHERE url.matches(".*urlselected.*")
PARAMETERS String urlselected ORDER BY url desc>: Wildcard must appear
at the end of the expression string (only prefix matches are
supported):
org.datanucleus.store.appengine.query.DatastoreQuery
$UnsupportedDatastoreFeatureException: Problem with query <SELECT FROM
com.backlinks.pojo.Pojo_website WHERE url.matches(".*urlselected.*")
PARAMETERS String urlselected ORDER BY url desc>: Wildcard must appear
at the end of the expression string (only prefix matches are
supported)
at
org.datanucleus.store.appengine.query.DatastoreQuery.getPrefixFromMatchesExpression
(DatastoreQuery.java:774)
at
org.datanucleus.store.appengine.query.DatastoreQuery.handleMatchesOperation
(DatastoreQuery.java:748)
at org.datanucleus.store.appengine.query.DatastoreQuery.addExpression
(DatastoreQuery.java:733)
at org.datanucleus.store.appengine.query.DatastoreQuery.addFilters
(DatastoreQuery.java:663)
at org.datanucleus.store.appengine.query.DatastoreQuery.performExecute
(DatastoreQuery.java:214)
at org.datanucleus.store.appengine.query.JDOQLQuery.performExecute
(JDOQLQuery.java:84)
at org.datanucleus.store.query.Query.executeQuery(Query.java:1489)
at org.datanucleus.store.query.Query.executeWithArray(Query.java:
1371)
at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:243)
at com.backlinks.dao.Dao_website.getEntries(Dao_website.java:37)
at org.apache.jsp.website_005fmanage_jsp._jspService
(website_005fmanage_jsp.java:68)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at com.google.appengine.tools.development.PrivilegedJspServlet.access
$101(PrivilegedJspServlet.java:23)
at com.google.appengine.tools.development.PrivilegedJspServlet$2.run
(PrivilegedJspServlet.java:59)
at java.security.AccessController.doPrivileged(Native Method)
at com.google.appengine.tools.development.PrivilegedJspServlet.service
(PrivilegedJspServlet.java:57)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1093)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at com.google.appengine.tools.development.StaticFileFilter.doFilter
(StaticFileFilter.java:121)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle
(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle
(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle
(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle
(DevAppEngineWebAppContext.java:54)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:313)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection$RequestHandler.content
(HttpConnection.java:844)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at org.mortbay.io.nio.SelectChannelEndPoint.run
(SelectChannelEndPoint.java:396)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run
(BoundedThreadPool.java:442)
2009-9-9 5:58:00 com.google.apphosting.utils.jetty.JettyLogger warn








Wildcard must appear at the end of the expression string (only prefix
matches are supported)
Wildcard must appear at the end of the expression string (only prefix
matches are supported)
Wildcard must appear at the end of the expression string (only prefix
matches are supported)

Shawn Wu

unread,
Sep 9, 2009, 2:02:28 AM9/9/09
to google-a...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages