5

我有这个对象:

public class Set {
    @DatabaseField(columnName = "setID", generatedId = true)
    private int setID;
    @DatabaseField(columnName = "setName")
    private String setName;
}

如果我制作这样的对象:

Set newSet = new Set("name");
setDao.create(newSet);

然后,如果我这样做:

int id = newSet.getID();

我会得到集合 id 还是应该从数据库中获取整个对象

setDao.queryForEq("setName", "name");
4

1 回答 1

12

所以 ORMLite 文档非常广泛。如果您在文档中查找generated-id,您会看到以下语句:

布尔字段是否为自动生成的 id 字段。默认为假。一个类中只有一个字段可以有此设置。这告诉数据库为插入的每一行自动生成一个相应的 id。当使用Dao.create() 方法创建具有生成ID 的对象时,数据库将为该行生成一个ID,该ID 将由create 方法返回并设置在对象中。

因此,在您调用 之后setDao.create(newSet)newSet对象的setID字段将使用数据库中的 id 进行更改。

此外,调用字段setID是一种非常糟糕的模式。我建议只使用id.

于 2012-11-09T17:14:07.653 回答