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();

データベースにNullPointerExeption150 のレコードがないからではありません。助けてください私は必死です。

4

1 に答える 1

1

あなたのコードは、クエリ ビルダー ロジックの観点から見れば問題ないように見えます。ただし、配線に関係する何かが間違っていると思われます。あなたのコメントでは、NPE がクエリ行で発生すると述べています。

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

ほとんどの場合、これは次のいずれかを意味します。

today行で逆参照されnullないため、NPE は発生しません。確かに ORMLite のバグは問題外ではありませんが、最初にデバッガーでチェックして、getHelper()またはgetVoznjaDao()呼び出しが返されているかどうかを確認しますnull。その時点でバグが見つかると思います。

于 2012-05-30T18:40:19.667 に答える