0

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

4

1 回答 1

1

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

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

这很可能意味着:

  • getHelper()正在返回一个null帮助程序实例
  • getVoznjaDao()正在返回一个nullDAO
  • 或者ORMLite中存在错误

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

于 2012-05-30T18:40:19.667 回答