Я новичок в 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());
, которое не может запросить идентификатор, потому что у ForeignData нет идентификаторастолбец.
и если я изменю идентификатор в классе ForeignData на
@DatabaseField(generatedId=true,columnName="id")
private Integer id;
Исключение, которое я получаю, это "queryForOne из поля базы данных: SELECT * FROM 'ForeignData' WHERE 'id' =?«