我阅读了有关orm lite的所有文档,也在网上查找但未找到正确的答案。我想执行这个声明:
SELECT * from Drive where day_number=150;
我有代表表的类:
@DatabaseTable(tableName="Drive")
public class Drive{
@DatabaseField(generatedId=true)
private int drive_id;
@DatabaseField
private String start_time;
@DatabaseField
private String end_time;
@DatabaseField
private String price;
@DatabaseField
private String distance;
@DatabaseField
private String day_number;
@DatabaseField
private String week_number;
@DatabaseField
private String month;
getters and setters ...
}
当我跑步时:
List<Drive> today = getHelper().getVoznjaDao().queryBuilder().where().
eq("day_number","150").query();
我得到NullPointerExeption
,而不是因为数据库中没有150的记录。
请帮助我绝望。
答案 0 :(得分:1)
您的代码在查询构建器逻辑方面看起来很好。我怀疑与你的接线有关的事情是不正确的。在您的评论中,您提到NPE发生在查询行上。
List<Drive> today = getHelper().getVoznjaDao().queryBuilder().where().
eq("day_number","150").query();
这很可能意味着:
getHelper()
正在返回null
帮助程序实例getVoznjaDao()
正在返回null
DAO today
null
不会导致NPE,因为它没有在线上取消引用。当然,ORMLite中的错误并不是不可能的,但我会首先检查调试器,看看getHelper()
或getVoznjaDao()
调用是否正在返回null
。我怀疑你会在那时找到错误。