所以我使用ormlite来处理android中的sqlite数据库。不幸的是,我使用dao.queryBuilder()。where()。eq()。queryFirst()得到了意想不到的结果。 这是我的功能:
public static Person getByEmail(Dao<Person, ?> dao, String email) {
try {
Log.e("queriedEmail", email);
return dao.queryBuilder().where()
.eq(Person.EMAIL_FIELD, email)
.queryForFirst();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
我实际上检查了传递的电子邮件和我得到的人物对象。两者都有完全不同的电子邮件。
上述功能由
调用public static Person getByEmail(MyApp app, String email) {
try {
return getByEmail(app.getDatabaseHelper().getDao(
Person.class), email);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
如果有人可以指出我哪里出错了,那真是太棒了。谢谢!
答案 0 :(得分:0)
好吧,我得到了一个解决方案。 queryBuilder实际上给出了错误的结果,因此我使用了ormlite queryRaw而不是queryBuilder。
答案 1 :(得分:0)
所以我使用ormlite来处理android中的sqlite数据库。不幸的是,我使用dao.queryBuilder()。where()。eq()。queryFirst()得到了意想不到的结果。
您似乎暗示QueryBuilder
由于某种错误而无法正常工作。这并非不可能,但你更有可能错误地使用它。我会使用调试器来弄清楚发生了什么。要查看正在生成的查询类型,您还可以启用ORMLite's Android logs。
有些事情需要研究:
Person.EMAIL_FIELD
符合您的期望。email
,以便该字段可以正常,但null
值可能也是问题。祝你好运调试错误。