android - ORMLite 不能做 queryForId

标签 android ormlite

我是 android 和 ormLite 的新手,我只是尝试存储数据并使用 queryForId 再次取回数据。起初它运行良好,但不知何故在摆弄了一下之后......我得到异常说我的类(class)没有 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 没有 id 列,所以返回不能查询 id。

如果我将 ForeignData 类中的 id 更改为

 @DatabaseField(generatedId=true,columnName="id")
 private Integer id;

我得到的异常是“queryForOne from database field: SELECT * FROM 'ForeignData' WHERE 'id'=?”

最佳答案

您可以将 ForeignData 类中的 id 更改为:

@DatabaseField(id = true)
private Integer id;

关于android - ORMLite 不能做 queryForId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7669163/

相关文章:

android - 以字节为单位转换ImageView android?

Android - Facebook SDK 获取用户名 - Request.GraphUserCallback 返回 null

java - ORMlite 注释中 native SQL 函数的使用

android - 在QueryBuilder(ANDROID、ORMLITE)中使用limit()和offset()

android - 视频播放需要surfaceView吗?

android - 获取firebase android中特定值的推送ID

android - 在微调器中更改样式的问题

android - 在 Android 上将表从一个数据库插入到另一个数据库的 ORMLite 问题

android - 如何在Android上扩展ORMLite的BaseDaoImpl类来扩展功能

java - 为什么ormlite不能通过jpa表注释获得正确的表名?