使用ORMLite查询构建器执行自定义查询

时间:2012-05-30 18:15:17

标签: android ormlite query-builder

我阅读了有关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的记录。 请帮助我绝望。

1 个答案:

答案 0 :(得分:1)

您的代码在查询构建器逻辑方面看起来很好。我怀疑与你的接线有关的事情是不正确的。在您的评论中,您提到NPE发生在查询行上。

List<Drive> today = getHelper().getVoznjaDao().queryBuilder().where().
    eq("day_number","150").query();

这很可能意味着:

  • getHelper()正在返回null帮助程序实例
  • getVoznjaDao()正在返回null DAO
  • ORMLite
  • 中有错误

today null不会导致NPE,因为它没有在线上取消引用。当然,ORMLite中的错误并不是不可能的,但我会首先检查调试器,看看getHelper()getVoznjaDao()调用是否正在返回null。我怀疑你会在那时找到错误。