2011-01-09 73 views

回答

2

它的基本功能是調用SQLiteQueryBuilder#buildQueryString靜態方法,因此您可以嘗試調用傳遞正確參數的方法。 This是方法的樣子:

public static String buildQueryString(
     boolean distinct, String tables, String[] columns, String where, 
     String groupBy, String having, String orderBy, String limit) { 
    if (TextUtils.isEmpty(groupBy) && !TextUtils.isEmpty(having)) { 
     throw new IllegalArgumentException(
       "HAVING clauses are only permitted when using a groupBy clause"); 
    } 
    if (!TextUtils.isEmpty(limit) && !sLimitPattern.matcher(limit).matches()) { 
     throw new IllegalArgumentException("invalid LIMIT clauses:" + limit); 
    } 

    StringBuilder query = new StringBuilder(120); 

    query.append("SELECT "); 
    if (distinct) { 
     query.append("DISTINCT "); 
    } 
    if (columns != null && columns.length != 0) { 
     appendColumns(query, columns); 
    } else { 
     query.append("* "); 
    } 
    query.append("FROM "); 
    query.append(tables); 
    appendClause(query, " WHERE ", where); 
    appendClause(query, " GROUP BY ", groupBy); 
    appendClause(query, " HAVING ", having); 
    appendClause(query, " ORDER BY ", orderBy); 
    appendClause(query, " LIMIT ", limit); 

    return query.toString(); 
} 
+1

我會說這是一個解決方法,但我purposes.I希望的是配置就像不同的JPA實現,您可以啓用SQL跟蹤調試目的已足夠好了。 – Magnus 2011-01-13 01:02:49