我有这个对象:
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();
我是否会获得set id或者是否应该使用
从数据库中获取整个对象setDao.queryForEq("setName", "name");
答案 0 :(得分:10)
所以ORMLite文档非常广泛。如果您查找generated-id in the docs,您会看到以下声明:
Boolean该字段是否为自动生成的id字段。默认值为false。只有一个字段可以在类中设置此集合。这告诉数据库为插入的每一行自动生成相应的id。 当使用Dao.create()方法创建具有generated-id的对象时,数据库将为该行生成一个id,该id将由create方法返回并在对象中设置。 < / p>
因此,在您致电setDao.create(newSet)
后,newSet
对象的setID
字段将使用数据库中的ID进行更改。
此外,调用字段setID
是一种非常糟糕的模式。我建议你只使用id
。