我是新手,请帮助我。

我正在尝试使用ormlite like(列名,值)函数,但这对我不起作用。但是当我测试全文时,它就像“eq”函数一样工作。

我的代码是

try {
    QueryBuilder<MakeDTO, Integer> qb = makeDao.queryBuilder();
    qb.where().like("madeCompany", filterKey);
    PreparedQuery<MakeDTO> pq = qb.prepare();
    return makeDao.query(pq);
} catch (SQLException e) {
    throw new AppException(e);
}

谢谢。

最佳答案

一个古老的问题,但是我刚刚解决的问题(ORMLite的文档尚不清楚)。您需要将查询参数包装在“%”中,以告诉ORMLite查询字符串的哪一侧可以匹配任意数量的字符。

例如,如果您希望查询与包含字符串的任何madeCompany匹配,请使用以下命令:

try {
    QueryBuilder<MakeDTO, Integer> qb = makeDao.queryBuilder();
    qb.where().like("madeCompany", "%"+filterKey+"%");
    PreparedQuery<MakeDTO> pq = qb.prepare();
    return makeDao.query(pq);
} catch (SQLException e) {
    throw new AppException(e);
}

关于Android ormlite like()函数无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7642161/

10-10 22:40