Android ormlite like()函数不起作用

我是新来的,请帮助我。

我正在尝试使用ormlite(列名,值)函数,但这不适合我。 但是当我testing全文时,它就像“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); } 

谢谢。

Solutions Collecting From Web of "Android ormlite like()函数不起作用"

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

例如,如果您希望查询与包含string的任何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); } 

很简单,你问它是完全string'madeCompany',如果你想做部分匹配,你需要使用%通配符等。

 public Where<T,ID> like(java.lang.String columnName, java.lang.Object value) throws java.sql.SQLException Add a LIKE clause so the column must mach the value using '%' patterns. Throws: java.sql.SQLException 

Where.like(java.lang.String,java.lang.Object)