我是 android 和 ormLite 的新手,我只是尝试存储数据并使用 queryForId 再次取回。起初它运作良好,但不知何故在摆弄了一下之后......我得到了一个例外,说我的班级没有 id 字段。
这是课程的代码
@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());
哪个返回不能查询 id 因为 ForeignData 没有 id 列。
如果我将 ForeignData 类中的 id 更改为
@DatabaseField(generatedId=true,columnName="id")
private Integer id;
我得到的例外是“来自数据库字段的queryForOne:SELECT * FROM 'ForeignData' WHERE 'id'=?”