0

以下代码抛出异常,因为字符串字段中包含 SQL 保留字“by”。我将如何逃避这个保留字。该代码适用于谷歌数据存储。

String field="Hosted by me"
PersistenceManager pm=PMF.get().getPersistenceManager();
    try{
    Query query=pm.newQuery("select from "+SomeObject.class.getName()
            +" where mField=='"+field+"'");
    _logger.info(query.toString());
    SomeObject=query.execute();
    }finally{
        pm.close();
    }

这是例外: : org.datanucleus.exceptions.NucleusUserException:查询包含一个乱序的 JDOQL 关键字(“by”)。关键字只能按定义的顺序使用。

4

1 回答 1

2

试试这个:

PersistenceManager pm = ...;
try {
  Query quer = pm.newQuery("select from " + SomeObject.class.getName()
                          " where mField == mFieldParam" +
                          " parameters String mFieldParam");
  List<SomeObject> results = (List<SomeObject>) query.execute("Hosted by me");
} finally {
  ...
}
于 2011-10-15T22:13:04.880 回答