簡體   English   中英

我無法使用Ormlite從sqlite數據庫中檢索數據?

[英]I can't retrieve data from sqlite db using Ormlite?

我的模型有一個java.sql.Date變量,我可以保存就好了。

但是,每當我嘗試檢索行時,都會引發此錯誤:

Caused by: java.lang.IllegalArgumentException: field model.date_time_created has type
    java.sql.Date, got java.util.Date
        at java.lang.reflect.Field.set(Native Method)
        at java.lang.reflect.Field.set(Field.java:557)
        at com.j256.ormlite.field.FieldType.assignField(FieldType.java:576)
        at com.j256.ormlite.stmt.mapped.BaseMappedQuery.mapRow(BaseMappedQuery.java:71)
        at com.j256.ormlite.stmt.SelectIterator.getCurrent(SelectIterator.java:270)
        at com.j256.ormlite.stmt.SelectIterator.nextThrow(SelectIterator.java:161)
        at com.j256.ormlite.stmt.StatementExecutor.query(StatementExecutor.java:202)
        at com.j256.ormlite.stmt.StatementExecutor.queryForAll(StatementExecutor.java:118)
        at com.j256.ormlite.dao.BaseDaoImpl.queryForAll(BaseDaoImpl.java:241)

我的方法來獲取列表:

public List<Model> getModelList() {
    try {
        return getHelper().getModelDao().queryForAll();
    } catch (SQLException e) {
        Timber.e(ErrorUtils.getExceptionString(e));
        return null;
    }
}

模型是占位符

您的導入指定了java.sql.Date ,但是您的Ormlite字段的類型為java.util.Date 解決方案是更改Java文件頂部的導入,以便引入正確的類。

IllegalArgumentException:字段model.date_time_created具有類型java.sql.Date,獲得了java.util.Date

原來,問題出在ORMLite 在Android / SQLite下,我們必須將所有日期都轉換為字符串,並且來自java.sql.Date的轉換已中斷。 切換到java.util.Date將起作用。

這將在版本5.0中修復。 參見: https : //github.com/j256/ormlite-android/issues/51

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM