我是新來的android和ormLite,我只是嘗試存儲數據,並使用queryForId再次返回。起初,它工作得很好,但不知何故擺弄了一下......我得到了一個例外,說我的班級沒有ID字段。ORMLite不能做queryForId
這裏是該類
@DatabaseTable(tableName="ForeignData")
public class ForeignData implements Serializable {
private static final long serialVersionUID = 3640428963380696279L;
@DatabaseFieldId(generatedId = true)
private Integer id;
@DatabaseFieldSimple(defaultValue = "")
private String name;
public ForeignData(){};
}
的代碼,這是我怎麼稱呼它...
ForeignData f = new ForeignData();
try {
Dao<ForeignData, Integer> fdao = new DatabaseHelper(getApplicationContext()).getForeignDao();
f.setName("test");
fdao.create(f);
f = fdao.queryForId(f.getId())==null?f:fdao.queryForId(f.getId());
txt1.setText(f.getName());
} catch (SQLException e) {
txt1.setText(e.getMessage());
}
,並在
f = fdao.queryForId(f.getId())==null?f:fdao.queryForId(f.getId());
趕上例外,其收益無法查詢-for-id,因爲ForeignData沒有id列。
,如果我改變ForeignData類標識加入
@DatabaseField(generatedId=true,columnName="id")
private Integer id;
的例外,我得到的是 「從數據庫字段queryForOne:SELECT * FROM 'ForeignData' WHERE 'ID'=?」
所有的代碼看起來找到@GAO所以我懷疑你是你的'onUpgrade'方法是正確的。這絕對看起來像架構不匹配。將來,請確保從堆棧跟蹤報告至少有幾行錯誤 - 而不僅僅是消息。 – Gray
謝謝我將來會這麼做,我仍然不習慣看到所有的堆棧跟蹤,所以我經常不會看它們,只是看看我的代碼中有什麼會造成這個bug。 –