[英]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.